Docker多网络功能可以让容器在同一个Docker宿主机上,同时连接多个网络。这给Docker应用程序的部署和网络拓扑带来了更加灵活的选择。
# 创建网络1 docker network create --subnet=172.18.0.0/16 net1 # 创建网络2 docker network create --subnet=192.168.0.0/24 net2 # 创建容器,并连接两个网络 docker run -itd --name container --network net1 --network net2 busybox # 查看容器网络配置 docker container inspect container
通过创建多个网络,可以实现不同网络的隔离,使容器只在需要的网络中通信,增强了网络安全性。
在一个容器同时连接多个网络时,可以通过网络名称来访问其他网络中的容器。如果需要访问外部网络,则需要设置Docker宿主机为网关并进行NAT配置。
# 设置Docker宿主机为网关 iptables -t nat -A POSTROUTING -s 172.18.0.0/16 -j MASQUERADE # 配置NAT iptables -t nat -A PREROUTING -p tcp -d 192.168.0.1 --dport 80 -j DNAT --to-destination 172.18.0.2:80
总之,Docker多网络功能为Docker应用程序的部署和网络拓扑提供了更加灵活的选择,同时也增强了网络安全性。