docker — — 概念
docker run 下一步 解释
-
Docker守护进程 daemon
docker服务运行的时候 本地会有一个docker daemon的后台进程在运行
如下: [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e49bbb21c967 nginx "/docker-entrypoint.…" 2 weeks ago Up 2 weeks 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp nginx da5e2fcade61 centos "/bin/bash" 3 weeks ago Up 3 weeks laughing_austin [root@localhost ~]# ps -ef | grep daemon dbus 6034 1 0 8月15 ? 00:00:11 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation root 6113 1 0 8月15 ? 00:00:38 /usr/sbin/NetworkManager --no-daemon root 6450 6430 0 8月18 pts/0 00:00:00 nginx: master process nginx -g daemon off; root 15070 15023 0 16:47 pts/0 00:00:00 grep --color=auto daemon
-
dbus-daemon — 消息总线守护进程,docker采用了这个后台进行信息交互
dbus 6034 1 0 8月15 ? 00:00:11 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
-
-
docker run 后的流程
-
例:
docker run -i -t nginx /bin/bash
输入这个命令,启动一个 nginx 时,开始执行?
-
大致流程可以用下图描述
A. 执行docker run 后 守护进程daemon会向host os发起请求,请求创建容器,然后你的linux会创建一个空的容器。
比如你esxi创建一个模版一样的,里面没有镜像,只有一些硬件资源比如cpu,内存什么的空壳
B. 然后docker daemon会请求你本地存在docker镜像文件,有如下两种情况
1.如果有那就加载到容器里面安装并运行 2.如果没有那就去docker hub上查找
C. 去docker hub (docker仓库)查找镜像文件时,有如下两种情况
1. 如果有找到镜像,就会执行pull 把这个镜像拉取到本地然后加载到容器里面直接运行 2. 如果没有找到镜像,就会返回报错未找到镜像
D.将镜像加载到容器中(即机器上安装状态好),不再是裸机
-
-
最就得到了一个 nginx 的虚拟机。
-