Docker-网络命名空间

概念图

  小绿框为虚拟网卡,docker0为网桥,eth0为物理网卡

虚机网桥

  docker会在宿主机上创建多个网桥(类型如Bridge、Host、None,默认的网桥docker0) 

  查看当前宿主机中的网桥:docker network ls

brctl工具

  查看链接到网桥上的虚拟网口信息:brctl show docker0 (下载brctl工具:yum install -y bridge-utils)

  每个容器都会分配一个网桥上的虚拟网口,并将docker0的IP地址设置为默认网关,容器发起的网络流量通过宿主机的iptables规则进行转发

Linux虚拟网络技术

  1.宿主机和容器各创建一个虚拟接口veth(组成一个veth pair)

  2.宿主机虚拟接口连接到docker0网桥或指定网桥

  3.容器中的虚拟网口修改名为eth0

  4.从网桥中分配一个闲置的IP地址给容器eth0,并设置网关为docker0的IP网关

Bridge

# 查看网桥信息
docker network ls
# 创建网桥
docker network create -d bridge my-bridge
# 创建容器时指定网桥
docker run 容器ID --network=my-bridge
# 查看my-bridge网桥的链接信息
docker network inspect my-bridge
# 为容器添加一个网段(如172.1.17.1 -> 172.1.17.1、172.1.18.1),可以根据容器名ping通
docker network connect my-bridge 容器ID

  

原文地址:https://www.cnblogs.com/BINGJJFLY/p/12850298.html