ip addr
查看地址
三个网络
运行tomcat
查看容器内网络地址
查看容器内网络地址
ping docker分配的地址
原理
每次启动一个容器,就会多一个网口
每次启动一个容器,就会多一个网口
以ip方式进入tomcat02
以ip方式进入tomcat02
image.png
测试tomcat01和tomcat02是否可以ping通
测试tomcat01和tomcat02是否可以ping通
网络模型图
网络模型图
结论:tomcat01和tomcat02是公用的一个路由器,docker0。
结论
image.png
Docker使用的是Linux桥接,宿主机中是一个Docker容器的网桥 docker0。最多大约分配65535个地址
image.png
移除容器之后,网卡自动消失
移除容器之后,网卡自动消失
查看容器地址,发现261到262的网络地址没有了
查看容器地址,发现261到262的网络地址没有了
结论
--link
--link
直接通过镜像名ping俩个tomcat,发现并不能ping通
docker exec -it tomcat02 ping tomcat01
直接通过镜像名ping俩个tomcat,发现并不能ping通
通过--link启动tomcat 可以通过镜像名之间ping通
docker run -d -P --name tomcat03 --link tomcatj02 tomcat
通过--link启动tomcat 可以通过镜像名之间ping通
但是此时反向不可以ping通,也就是tomcat02ping不同tomcat03
但是此时反向不可以ping通,也就是tomcat02ping不同tomcat03
查看docker网络
查看docker网络
查看容器中的三个tomcat分配了三个ip
查看容器中的三个tomcat分配了三个ip
image.png
查看tomcat03的配置,发现--link就是在tomcat03的hosts中配置了tomcat02的地址
在tomcat03的hosts中配置了tomcat02的地址
再次查看tomcat02的hosts配置,发现里面没有配置tomcat03的配置,所以tomcat02ping不同tomcat03,也就说明--link是单向的
再次查看tomcat02的hosts配置,发现里面没有配置tomcat03的配置,所以tomcat02ping不同tomcat03,也就说明--link是单向的
结论
自定义网络
查看所有的docker网络
查看所有的docker网络
网络模式
网络模式
1.查看ip地址
查看ip地址
2.创建docker网络
docker network create --drive bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
# --subnet:子网掩码
# --gateway:网关
#--drive:bridge 桥接方式
创建docker网络
image.png
查看刚刚配置的网络
查看刚刚配置的网络
3.查看自己配置的网络
docker network inspect mynet
查看自己配置的网络
4.用我们自己的网络启动两个tomcat
用我们自己的网络启动两个tomcat
5.此时查看我们自己的网络mynet
,发现有俩个容器 就是刚刚的俩个tomcat
docker network inspect mynet
此时查看我们自己的网络`mynet`,发现有俩个容器 就是刚刚的俩个tomcat
此时查看我们自己的网络`mynet`,发现有俩个容器 就是刚刚的俩个tomcat
6.此时再次ping俩个tomcat,发现已经可以实现互相ping通
此时再次ping俩个tomcat,发现已经可以实现互相ping通
而且通过名字也可以ping通俩个tomcat
而且通过名字也可以ping通俩个tomcat
网络打通
1.想要实现172.18.0.1ping通192.168.0.1
网络打通
docker network connect命令的使用方法
2.首先使用mynet网络和tomcat01连通
docker network connect mynet tomcat01
首先使用mynet网络和tomcat01连通
3.此时再次查看mynet网络
image.png
image.png
一个容器,俩个IP地址,tomcat01有俩个ip
4.此时ping俩个tomcat
其中一个是docker0网络的tomcat01,一个是mynet的tomcat-net-01,发现可以ping通
此时ping俩个tomcat