Docker网络

理解Docker网络:

问题:Docker是如何处理容器网络访问的?

原理

1.我们每次启动docker容器,docker就会给容器分配一个IP,我们只要安装了docker,就会有一个网卡docker0桥接模式,使用的奇数时evth-pair技术!

再次测试ip addr

veth-pair : 就是一堆虚拟设备接口,他们都是成对出现的,一段连着协议,一段彼此相连。
veth-pair 充当一个桥梁,连接各种虚拟网路设备

容器是相互可以ping通的

docker exec -it tomcat01 ping 172.8.0.2

结论:

tomcat01和tomcat02 是公用的一个路由器,docker0

所有的容器不指定网络的情况下,都是docker0的路由的,docker会给我们的容器分配一个默认的可用IP

小结

Docker使用的是Linux的桥接,宿主机中是一个docker容器的网桥 docker0.

Docker中所有的网络接口都是虚拟的,虚拟的转发效率高。

思考

通过服务的名称进行关联服务,通过容器名关联容器


docker run  

--link 关联容器id

网络模式

  • bridge:桥接 docker
  • none:不配置网络
  • host:和宿主机共享网络
  • container:容器网络联通!

自定义网络

  • 查看所有的docker网络
docker network ls

网络模式

bridge:桥接 docker默认模式

none:不配置网络

host:和宿主机共享网络

container:容器内网络连通

  • 自定义网关
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
  • 启动容器
docker run -d -P --name tomcat-net-01 --net mynet tomcat

-测试连接

docker exec -it tomcat-net-01 ping tomcat-net-02

我们自定义的网络docker都帮我们维护好了对应关系

好处:

redis:不同的集群使用不同的网络,保证集群是安全和健康的

mysql:不同的集群使用不同的网络,保证集群是安全和健康的

网络连通的操作

  • 容器和网路进行联通
docker network connect mynet tomcat01

结论:假设要跨网络操作别人,就需要使用docker network connect 连通。。。

posted @ 2021-06-29 00:14  PerfectLi  阅读(17)  评论(0)    收藏  举报