Docker的故事(一)

252 阅读3分钟

计划更文5/100

  • Docker是什么

    • Docker是一个开源的应用程序容器引擎,它可以帮助开发者将应用程序及其依赖打包成一个可移植的容器,然后发布到任何支持Docker的服务器上运行,如Mac、Linux和Windows等,从而帮助开发者更轻松地构建、部署和管理应用程序。
    • 程序在这个虚拟容器里运行,类似于程序在真实的物理机里运行。
  • 基本概念

    • 镜像(Image):Docker镜像是一个只读模版,它包含了运行一个Docker容器所需的所有文件和配置。
    • 容器(Container):Docker容器是从Docker镜像创建的运行实例,它包含了应用程序及其所有依赖关系。Image可以看做是Container的模版。
    • 仓库(Repository):Docker仓库是一个集中存储和管理Docker镜像的地方,可以是公共的(如Docker Hub)或私有的。
  • 查看环境变量:export

    Pasted Graphic.png

  • 单独查看PATH值:echo $PATH

    Pasted Graphic 1.png

  • 添加PATH环境变量 export PATH="/abc;/opt"

    Pasted Graphic 3.png

  • Docker容器的配置信息存储在容器的元数据中,这些元数据包含了容器的各种配置选项。

    • 如容器名、容器id、容器IP地址、启动命令、环境变量、挂载的数据卷、网络设置、Image、端口号Port、Env(RABBITMQ_DEFAULT_USER、RABBITMQ_DEFAULT_PASS、PATH)、Cmd、等。

    • (注:容器IP地址可能因为虚拟机的重启而改变,ip的分配和容器启动的顺序有关。此时要更新在Nginx中配置的ID)

    • 可以使用docker inspect <container_id_or_name>命令来查看<container_id_or_name>容器的元数据,该命令将输出该容器的JSON格式元数据。

      Pasted Graphic 6.png

    • docker container ls命令可以列出所有正在运行的容器,包括它们的名称、ID、状态、启动命令等基本信息。

      Pasted Graphic 11.png

      Pasted Graphic 7.png

      Pasted Graphic 8.png

  • docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack:latest 在docker中启动一个Redis容器

    这是一个Docker命令,用于在Docker中启动一个Redis容器。
    
        docker run:运行Docker容器的命令
    
        -d:让容器在后台运行
    
        —name redis-stack:给容器命名为’Redis-stack’,方便管理。
    
        -p 6379:6379:将容器内部的‘6379’端口映射到主机上的’6379’端口,方便外部应用程序连接Redis
    
        -p 8001:8001:将容器内部的’8001’端口映射到主机上的’8001’端口,方便外部应用程序访问Redis Web服务器。
    
        redis/redis-stack:latest:使用Docker Hub上的’redis/redis-stack’镜像启动容器,并指定使用该镜像的最新版本(latest)
    
    执行该命令后,Docker会从Docker Hub上下载’redis/redis-stack’镜像,并在本地启动一个容器。可以使用 docker ps 命令查看容器的运行状态,使用 docker logs redis-stack 命令查看容器的日志输出。
    

    Pasted Graphic 12.png

    Pasted Graphic 13.png

  • Docker镜像本身就是一个已经构建好的完整的应用程序环境,包括所需的软件和配置文件等。

    • 当启动容器时,Docker会查找镜像中预定义的启动命令并执行它们。
    • 如果想要自定义启动容器时执行的命令,可以在Dockerfile文件中使用"CMD"或"ENTRYPOINT"指令,这些指令允许你在构建镜像时指定启动容器时要运行的命令或脚本。

    Pasted Graphic 9.png

  • 如何找到本地文件系统中所有的Dockerfile文件 

    • sudo find / -name Dockerfile 
    • 该命令会在整个文件系统中搜索名为Dockerfile的文件,并输出它们的路径。

    Pasted Graphic 10.png

  • 要编辑Docker容器中的‘CMD’信息,有两种方法:

    1. 在Dockerfile中修改‘CMD’指令,编辑Dockerfile文件。  

      FROM ubuntu:latest  
      CMD ["echo", "Hello, Docker!"]
      

      然后,使用’docker build’命令重新构建镜像,并运行新构建的容器即可。

    2. 使用docker container update命令修改容器的‘CMD’信息

      docker container update --entrypoint "echo" mycontainer "Hello, Docker!"
      
  • 查看容器日志   docker logs <container_name_or_id>

    Pasted Graphic 24.png

  • 删除Docker容器  docker rm <container_id_or_name>

    image.png

  • 删除Docker镜像 docker image rm <image_name_or_id>

    image.png

参考链接:

  1. devconnected.com/how-to-inst…

  2. devconnected.com/docker-exec…