网络模式:
bridge:桥接 docker (默认)
none:不配置网络
host:和宿主机共享网络
container:容器网络连通!
自定义网络可以解决 容器之间不能通过name之间访问的问题。
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
--dridge bridge 网络模式为 桥接模式
--subnet 192.168.0.0/16 设置子网
--gateway 192.168.0.1 设置网关
查看新建网络:
创建一个带自定义网络的容器:
docker run -d -P --name tomcat-net-01 --net mynet tomcat
docker run -d -P --name tomcat-net-02 --net mynet tomcat
这样就可以通过 name 来 ping通别的容器了:
网络连通
当我们需要 连接不同网关的 容器时,无法直接连通:如图tomcat-01 ping 不通 tomcat-net01的
首先先创建一个tomcat-01,然后去ping tomcat-net-01,发现是直接报错的,证明直接ping是不行的:
查看 docker network --help
可以看到,有一个 connect 连接其他容器的命令:
测试打通 容器tomcat01 和 网络 mynet:
docker network connect mynet tomcat-01
这个时候,再测试ping一次,就通了:
使用
docker network inspect mynet
查看之前创建的网络:
可以发现tomcat-01被加入了网络 mynet中,所以才能 连通