1.创建一个 container
docker run -d --name test1 busybox /bin/sh -c "while true; do sleep 3600; done"
2.查看 docker 的网络情况 查看docker 上有哪些网络
docker network ls
<style></style>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 可以看出eth0@if6 和 vetha9bfb69@if5 是一对
并且 veth85d9927@if5 是连到了 docker0 上
6. 验证 veth85d9927@if5 是连到了 docker0 上
安装验证工具 bridge-utils
sudo yum install bridge-utils
使用 brctl show
interfaces 的 数值 刚好与 container test1 的对外接口 对应上
说明 container test1 的对外接口 是通过 docker0 桥接出去的
7. 桥接网络图
8. 容器是如何访问外网的
是通过 NAT 技术 查询 ip tables 然后访问的