镜像是一个只读的文件和文件夹组合,是容器运行的基础,包含了容器运行所需要的的基础文件和配置信息。
来源:自己制作;镜像仓库拉取(docker hub)
通俗的理解,容器是镜像的运行实体。
镜像是静态的可读文件,容器带有运行时所需要的可写文件层,容器运行着真正的进程。
容器的状态:初建、运行、暂停、停止、删除
在容器内部,无法看到主机上的环境变量、运行的进程、网络等信息。
仓库用来存储和分发docker镜像,包含共有仓库和私有仓库,docker官方仓库:Docker Hub
总结:镜像、容器、仓库之间的关系如下图
由上图可以看到,Docker 整体架构采用 C/S(客户端 / 服务器)模式,主要由客户端和服务端两大部分组成。客户端负责发送操作指令,服务端负责接收和处理指令。客户端和服务端通信有多种方式,即可以在同一台机器上通过UNIX套接字通信,也可以通过网络连接远程通信。
重要组件
通过如下命令,查看上图中各个组件之间的进程关系:
dockerd 启动的时候, containerd 就随之启动了,dockerd 与 containerd 一直存在。当执行 docker run 命令(通过 busybox 镜像创建并启动容器)时,containerd 会创建 containerd-shim 充当 “垫片” 进程,然后启动容器的真正进程
原文:https://www.cnblogs.com/Xiaojiangzi/p/13630648.html