1.创建一个 container
docker run -d --name test1 busybox /bin/sh -c "while true; do sleep 3600; done"
2.查看 docker 的网络情况 查看docker 上有哪些网络
docker network ls
NETWORK ID NAME DRIVER SCOPE
385c87f45f0e bridge bridge local
78e50edb53c5 host host local
d5d0532ce8d7 none null local
3.查看 test1 的网络是连接到那种 driver 上的
docker network inspect [ bridge 的 network_id]
输出中包含了 containers , 其中包含了 Name 为 test1
4. 查看 container 的 network
ip a
其中 docker0 是本机器 在docker 内的Namespace
docker0 下的 test1 的Namespace 为虚拟的 是 以 veth 开头的
5. 查看 test1 的网络
docker exec test1 ip a 可以看出[email protected] 和 [email protected] 是一对
并且 [email protected] 是连到了 docker0 上
6. 验证 [email protected] 是连到了 docker0 上
安装验证工具 bridge-utils
sudo yum install bridge-utils
使用 brctl show
interfaces 的 数值 刚好与 container test1 的对外接口 对应上
说明 container test1 的对外接口 是通过 docker0 桥接出去的
7. 桥接网络图
8. 容器是如何访问外网的
是通过 NAT 技术 查询 ip tables 然后访问的