docker网络详解

docker网络模式

docker网络详解_第1张图片

1. bridge 		桥接模式(默认)
2. host   		与宿主机共享网络
3. mynet  		自定义的网络
4. none   		不配置网络
5. container  	容器网络连通(用的少,局限性大)

docker0

docker0是docker启动的时候就会创建一个docker0的网卡,使用的是桥接模式,默认的情况下使用的都是docker0网络。docker0使用的是veth-pair技术,使容器与容器间通信。
docker网络详解_第2张图片

docker0缺点

  1. docker每次重启之后,容器的ip都会发生变化
  2. 不能使用服务名来通信

link

可以使用--link来解决根据服务名进行通信的问题

docker网络详解_第3张图片

由图可以看出,通过--link链接后,app3可以ping通app2,但是app2ping不通app3

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201230153124256.png

app3可以ping通app2的原因是在hosts文件中配置了app2的IP映射

docker网络详解_第4张图片
使用link进行服务名通讯比较笨重,因为不建议使用,建议使用自定义网络

自定义网络

自定义网络命令
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
启动容器时指定使用自定义网络   --net指定使用的网络
docker run -d -P --name app1 --net mynet  app
docker run -d -P --name app2 --net mynet  app
使用了自定义网络后,如下图,app1可以ping通app2,app2也可以ping通app1。
这是因为自定义网络已经帮我维护好了对应的关系

docker网络详解_第5张图片

docker network inspect  mynet 查看自定义网络情况

docker网络详解_第6张图片

你可能感兴趣的:(docker,docker,java,网络)