Docker 守护程序的名称是什么?
What is the name of the Docker daemon?
我 运行宁 Docker on macOS. Which means I'm really running Docker on a Linux virtual machine with VirtualBox。这样对吗?
在 macOS 中,我无法看到 docker 守护程序,因为它没有 运行ning 在我的 macOS 机器上:
$ ps aux | grep docker
max 4873 0.0 0.0 2432804 1732 s001 R+ 11:12AM 0:00.00 grep --color=auto docker
但是如果我通过 ssh 进入 linux 虚拟机(名为 default
),那么我可以看到 docker 相关进程:
$ docker-machine ssh default
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.13.1, build HEAD : b7f6033 - Wed Feb 8 20:31:48 UTC 2017
Docker version 1.13.1, build 092cba3
docker@default:~$ ps aux | grep docker
root 2360 0.0 0.0 9752 108 ? Ss 18:43 0:00 /sbin/udhcpc -b -i eth1 -x hostname boot2docker -p /var/run/udhcpc.eth1.pid
root 2372 0.0 0.0 9752 116 ? Ss 18:43 0:00 /sbin/udhcpc -b -i eth0 -x hostname boot2docker -p /var/run/udhcpc.eth0.pid
root 2374 0.0 0.2 16060 2296 ? S 18:43 0:00 ntpd -d -n -p 0.boot2docker.pool.ntp.org -p 1.boot2docker.pool.ntp.org -p 2.boot2docker.pool.ntp.org -p 3.boot2docker.pool.ntp.org
root 2673 0.1 4.3 397800 44680 ? Sl 18:43 0:02 /usr/local/bin/dockerd -D -g /var/lib/docker -H unix:// -H tcp://0.0.0.0:2376 --label provider=virtualbox --tlsverify --tlscacert=/var/lib/boot2docker/ca.pem --tlscert=/var/lib/boot2docker/server.pem --tlskey=/var/lib/boot2docker/server-key.pem -s aufs
root 2679 0.0 1.2 351496 12824 ? Ssl 18:43 0:01 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc --debug
root 3744 0.0 0.4 26428 4512 ? Ss 19:13 0:00 sshd: docker [priv]
docker 3746 0.0 0.2 26428 2764 ? S 19:13 0:00 sshd: docker@pts/0
docker 3747 0.0 0.2 11868 2244 pts/0 Ss 19:13 0:00 -sh
docker 3784 0.0 0.1 13040 1696 pts/0 R+ 19:13 0:00 ps aux
docker 3785 0.0 0.0 9756 916 pts/0 S+ 19:13 0:00 grep docker
从 docker 相关进程列表中,哪个是 docker 守护进程,它根据我通过 docker
cli 提供的图像创建容器?
例如当我 运行:
$ docker run dockerinaction/hello_world
hello world
发生以下事件:
但我认为这不是 macOS 的全部内容。在这个过程中,docker
cli 需要与 linux 虚拟机中的某个守护进程通信。它是哪个守护进程?
另外,virtualbox 守护进程的名称是什么?当我为它执行 case-insensitive grep 时,我得到大约 5 个进程:
$ ps aux | grep -i virtual
max 2307 1.6 6.7 3121608 558400 ?? S 10:42AM 1:28.47 /Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless --comment default --startvm f4d0a6c5-768a-4979-a757-333ac0b99fd6 --vrde config
max 1845 0.1 0.2 2514936 17688 ?? S 10:39AM 0:07.64 /Applications/VirtualBox.app/Contents/MacOS/VBoxSVC --auto-shutdown
max 2308 0.0 0.1 2467048 10172 ?? S 10:42AM 0:00.10 /Applications/VirtualBox.app/Contents/MacOS/VBoxNetDHCP --ip-address 192.168.99.6 --lower-ip 192.168.99.100 --mac-address 08:00:27:CA:19:58 --netmask 255.255.255.0 --network HostInterfaceNetworking-vboxnet3 --trunk-name vboxnet3 --trunk-type netadp --upper-ip 192.168.99.254
max 1843 0.0 0.1 2459396 9892 ?? S 10:39AM 0:02.69 /Applications/VirtualBox.app/Contents/MacOS/VBoxXPCOMIPCD
max 1841 0.0 0.8 2681980 70140 ?? S 10:39AM 0:04.69 /Applications/VirtualBox.app/Contents/MacOS/VirtualBox
max 5728 0.0 0.0 2433828 1928 s001 S+ 12:48PM 0:00.00 grep --color=auto -i virtual
I'm running Docker on macOS. Which means I'm really running Docker on a Linux virtual machine with VirtualBox. Is this right?
是的。
From the list of docker-related processes which one is the docker daemon that is creating the containers from the images I give it via the docker cli?
Docker 守护进程是 docker-containerd
进程 (pid 2679)。
我 运行宁 Docker on macOS. Which means I'm really running Docker on a Linux virtual machine with VirtualBox。这样对吗?
在 macOS 中,我无法看到 docker 守护程序,因为它没有 运行ning 在我的 macOS 机器上:
$ ps aux | grep docker
max 4873 0.0 0.0 2432804 1732 s001 R+ 11:12AM 0:00.00 grep --color=auto docker
但是如果我通过 ssh 进入 linux 虚拟机(名为 default
),那么我可以看到 docker 相关进程:
$ docker-machine ssh default
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.13.1, build HEAD : b7f6033 - Wed Feb 8 20:31:48 UTC 2017
Docker version 1.13.1, build 092cba3
docker@default:~$ ps aux | grep docker
root 2360 0.0 0.0 9752 108 ? Ss 18:43 0:00 /sbin/udhcpc -b -i eth1 -x hostname boot2docker -p /var/run/udhcpc.eth1.pid
root 2372 0.0 0.0 9752 116 ? Ss 18:43 0:00 /sbin/udhcpc -b -i eth0 -x hostname boot2docker -p /var/run/udhcpc.eth0.pid
root 2374 0.0 0.2 16060 2296 ? S 18:43 0:00 ntpd -d -n -p 0.boot2docker.pool.ntp.org -p 1.boot2docker.pool.ntp.org -p 2.boot2docker.pool.ntp.org -p 3.boot2docker.pool.ntp.org
root 2673 0.1 4.3 397800 44680 ? Sl 18:43 0:02 /usr/local/bin/dockerd -D -g /var/lib/docker -H unix:// -H tcp://0.0.0.0:2376 --label provider=virtualbox --tlsverify --tlscacert=/var/lib/boot2docker/ca.pem --tlscert=/var/lib/boot2docker/server.pem --tlskey=/var/lib/boot2docker/server-key.pem -s aufs
root 2679 0.0 1.2 351496 12824 ? Ssl 18:43 0:01 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc --debug
root 3744 0.0 0.4 26428 4512 ? Ss 19:13 0:00 sshd: docker [priv]
docker 3746 0.0 0.2 26428 2764 ? S 19:13 0:00 sshd: docker@pts/0
docker 3747 0.0 0.2 11868 2244 pts/0 Ss 19:13 0:00 -sh
docker 3784 0.0 0.1 13040 1696 pts/0 R+ 19:13 0:00 ps aux
docker 3785 0.0 0.0 9756 916 pts/0 S+ 19:13 0:00 grep docker
从 docker 相关进程列表中,哪个是 docker 守护进程,它根据我通过 docker
cli 提供的图像创建容器?
例如当我 运行:
$ docker run dockerinaction/hello_world
hello world
发生以下事件:
但我认为这不是 macOS 的全部内容。在这个过程中,docker
cli 需要与 linux 虚拟机中的某个守护进程通信。它是哪个守护进程?
另外,virtualbox 守护进程的名称是什么?当我为它执行 case-insensitive grep 时,我得到大约 5 个进程:
$ ps aux | grep -i virtual
max 2307 1.6 6.7 3121608 558400 ?? S 10:42AM 1:28.47 /Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless --comment default --startvm f4d0a6c5-768a-4979-a757-333ac0b99fd6 --vrde config
max 1845 0.1 0.2 2514936 17688 ?? S 10:39AM 0:07.64 /Applications/VirtualBox.app/Contents/MacOS/VBoxSVC --auto-shutdown
max 2308 0.0 0.1 2467048 10172 ?? S 10:42AM 0:00.10 /Applications/VirtualBox.app/Contents/MacOS/VBoxNetDHCP --ip-address 192.168.99.6 --lower-ip 192.168.99.100 --mac-address 08:00:27:CA:19:58 --netmask 255.255.255.0 --network HostInterfaceNetworking-vboxnet3 --trunk-name vboxnet3 --trunk-type netadp --upper-ip 192.168.99.254
max 1843 0.0 0.1 2459396 9892 ?? S 10:39AM 0:02.69 /Applications/VirtualBox.app/Contents/MacOS/VBoxXPCOMIPCD
max 1841 0.0 0.8 2681980 70140 ?? S 10:39AM 0:04.69 /Applications/VirtualBox.app/Contents/MacOS/VirtualBox
max 5728 0.0 0.0 2433828 1928 s001 S+ 12:48PM 0:00.00 grep --color=auto -i virtual
I'm running Docker on macOS. Which means I'm really running Docker on a Linux virtual machine with VirtualBox. Is this right?
是的。
From the list of docker-related processes which one is the docker daemon that is creating the containers from the images I give it via the docker cli?
Docker 守护进程是 docker-containerd
进程 (pid 2679)。