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 连通。。。

浙公网安备 33010602011771号