背景说明
Docker以C/S模式工作,主要分为两个部分,Docker CLI 和 Docker Daemon 。Docker CLI ,也就是客户端,提供给用户命令行操作 Docker,例如 docker create/images/ps 等。Docker Damon ,也就是守护进程,负责接受用户指令,维护容器的生命周期。
Docker Client
Docker Server
Docker daemon的主要组成部分,接受用户通过Docker Client发出的请求,并按照相应的路由规则实现路由分发。
解决方案
历史架构
最新架构
可以通过如下命令得到体现
[root@vm1 ~]# ps -ef |grep dockerd
root 9871 1 2 Apr09 ? 00:42:27 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 84740 84676 0 02:31 pts/0 00:00:00 grep --color=auto dockerd
[root@vm1 ~]# ps -ef |grep runc
root 65148 1 0 Apr10 ? 00:00:09 /usr/bin/containerd-shim-runc-v2 -namespace moby -id f4f4a00cc7863b766840bcbfda1394699fbbae2632783a17410085b7600d4d1c -address /run/containerd/containerd.sock
root 65174 1 0 Apr10 ? 00:00:07 /usr/bin/containerd-shim-runc-v2 -namespace moby -id e47c82f7326e26286dac1076a0b15fc2dc591ee433d2eef21628d974cda36d83 -address /run/containerd/containerd.sock
root 65680 1 0 Apr10 ? 00:00:08 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 1c271864f6a291c11b5db03edfc2ec4d99258f27a924367c633417336c66b631 -address /run/containerd/containerd.sock
root 84742 84676 0 02:31 pts/0 00:00:00 grep --color=auto runc
[root@vm1 ~]#
通过docker info指令可以看到默认运行时环境为runc