安装 docker desktop for windows ,选基于wsl2
已启动 docker desktop for windows
容器宿主机为 wsl2实例docker-desktop , win10真机并非容器宿主机; 且 win10宿主机网络 --> wsl2实例docker-desktop网络 --> docker容器 ,所以 容器并不能直接与win10真机网络直接互通,要想互通是需要配置路由转发的。
以下实证:
打开win10命令行cmd
wsl --list --verbose
"""
NAME STATE VERSION
* Ubuntu-20.04 Running 2
docker-desktop Running 2
docker-desktop-data Running 2
"""
#wsl2实例 docker-desktop 即 docker容器的宿主机
#以下进入 容器宿主机 docker-desktop 的终端:
wsl -d docker-desktop
如上结尾所属 win10真机命令行cmd中执行 “wsl -d docker-desktop” 即进入 容器宿主机 docker-desktop 的终端,进入后如下所示:
#查看容器宿主机 所使用的操作系统 为 5.10.16.3-microsoft-standard-WSL2
DESKTOP-GLNUNE9:/tmp/docker-desktop-root/mnt/host/c/Users/zzz# uname -a
Linux DESKTOP-GLNUNE9 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 Linux
#查看容器宿主机 网络路由
ip route
"""default via 172.18.96.1 dev eth0
172.18.96.0/20 dev eth0 proto kernel scope link src 172.18.104.189"""
#查看容器宿主机 ip地址
ip address
"""
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether e2:90:76:93:0c:32 brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether be:5c:30:e7:06:7c brd ff:ff:ff:ff:ff:ff
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:6e:0d:7b brd ff:ff:ff:ff:ff:ff
inet 172.18.104.189/20 brd 172.18.111.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe6e:d7b/64 scope link
valid_lft forever preferred_lft forever
5: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
6: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
"""
#查看容器宿主机中所有进程,可以看到大量 容器进程
ps auxf | more
"""
PID USER TIME COMMAND
1 root 0:00 /init
17 root 0:00 /init
18 root 0:00 /init
19 root 0:01 wsl-bootstrap run --base-image /mnt/host/c/Program Files/Docker/Docker/resources/wsl/docker-for-wsl.iso --cli-iso /mnt/host/c/Program Files/Docker/Docker/resources/wsl/
docker-wsl-cli.iso
27 root 0:08 /init
28 root 0:32 /usr/bin/vpnkit-bridge --disable ssh-auth,osxfs-data,transfused,filesystem-event,filesystem-test,http-proxy-control --pid-file=/run/vpnkit-bridge.pid --addr=stdio guest
43 root 0:00 unshare -muinpf --propagation=unchanged --kill-child=SIGTERM /usr/local/bin/wsl-bootstrap jump
44 root 0:00 /sbin/init
74 root 0:00 /usr/bin/memlogd -fd-log 3 -fd-query 4 -max-lines 5000 -max-line-len 1024
80 root 0:00 /usr/bin/logwrite -n procd /usr/bin/procd
87 root 0:00 /usr/bin/procd
174 root 0:00 [init]
229 root 0:00 [init]
337 root 0:02 /usr/bin/containerd
362 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id acpid -address /run/containerd/containerd.sock
409 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id allowlist -address /run/containerd/containerd.sock
429 root 0:00 /allowlist
453 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id binfmt -address /run/containerd/containerd.sock
503 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id container-filesystem -address /run/containerd/containerd.sock
532 root 0:01 /usr/bin/container-filesystem
558 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id devenv-service -address /run/containerd/containerd.sock
585 root 0:00 /devenv-server -socket /run/guest-services/devenv-volumes.sock
624 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id diagnose -address /run/containerd/containerd.sock
648 root 0:00 /usr/local/bin/diagnosticsd
670 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id dns-forwarder -address /run/containerd/containerd.sock
694 root 0:00 /usr/bin/dns-forwarder -dns.port 53 -conf /etc/coredns/Corefile
728 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id docker -address /run/containerd/containerd.sock
749 root 0:00 /usr/bin/docker-init /usr/bin/entrypoint.sh
769 root 0:00 {entrypoint.sh} /bin/sh /usr/bin/entrypoint.sh
777 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id http-proxy -address /run/containerd/containerd.sock
798 root 0:00 /http-proxy
825 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id kmsg -address /run/containerd/containerd.sock
846 root 0:00 /usr/bin/kmsg
871 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id nat -address /run/containerd/containerd.sock
918 root 0:00 /usr/bin/containerd-shim-runc-v2 -namespace services.linuxkit -id rngd -address /run/containerd/containerd.sock
"""