好处:不同的集群使用不同的网络,保证集群的安全和健康
自定义网络
网络模式:
- bridge:桥接 docker(默认,自己床架也使用bridge模式)
- none:不配置网络
- host:和宿主机共享网络
- container:容器网络连通(用的少,局限很大)
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
#--driver [网络模式]
#--subnet [子网范围](例:192.168.0.0/16(65535个ip)或192.168.0.0/24(255个ip))
#--gateway[网关地址](他从哪个地方出去)
docker network inspect mynet #查看自定义网络配置
docker run -d -P --name tomcat-net-01 --net mynet tomcat
docker run -d -P --name tomcat-net-02 --net mynet tomcat
#在自定义网络下启动连个容器tomcat-net-01 和 tomcat-net-02
docker network inspect mynet #查看在自定义网络启动容器的配置,查看被分配的IP端口
#通过ip访问同一网络下的其他容器
docker exec -it tomcat-net-01 ping 192.168.0.3 #(正常通ip来ping通)
#通过容器名来访问同一网络下的其他容器
docker exec -it tomcat-net-02 ping tomcat-net-02 #(通过容器名来ping)
网络连通
首先在另一个网段启动tomcat01和tomcat02两个容器
docker run -d -P --name tomcat01 tomcat
docker run -d -P --name tomcat02 tomcat
查看启动容器
docker ps
直接ping 两个不同网段的容器肯定是ping通的
通过connect命令将容器连接到网络上
docker network connect mynet tomcat01 #没有提示说明命令执行成功
查看网络的配置,发现多了一个tomcat01的配置
docker network inspect mynet
直接去ping另一个网络的容器,ping成功了
docker exec -it tomcat01 ping tomcat-net-01
docker exec -it tomcat01 ping tomcat-net-02
docker exec -it tomcat02 ping tomcat-net-01 #ping失败