Docker学习笔记九:Docker网络

前提:保证环境干净,清空所有镜像   docker rmi -f $(docker images -aq)

1、ip addr 获取当前网卡

三个网络,如何相互之间连接

1、启动一个tomcat容器,为tomcat1

docker run -d -P --name tomcate01 tomcat

查看容器内部地址

linux可以ping同容器内部

每启动一个docker容器,docker就会给docker容器分配一个ip,只要按照了docker,就会有一个网卡docker0桥接模式,使用的技术是evth-pair技术

启动了一个容器后,会多了一对网卡。

evth-pair:linux下一对虚拟接口,成对出现,一端连接协议,一端彼此相连,通常通过evth-pair充当一个桥梁

docker网络运行模型图

图二,docker中所有的网络接口都是虚拟的,速度快

docker的--link技术

出现原因:docker exec -it tomcat01 ping ip 可以ping通,但IP地址会每次打开会变,而docker exec -it tomcat01 ping tomcate02这种直接ping服务的方法ping不通,---link技术为了解决这个问题。

上图tomcat03绑定了tomcat02,所以tomcat03可以直接pingtomcat02,但tomcat02无法pingtomcat02,因为没有绑定。

重点:自定义网络---容器互联

docker network --help 查看命令帮助

docker network ls 查看所有docker网络

docker network rm 名---->移除网络

一、网络模式

1、bridge:桥接模式

2、none:不配置网络

3、host:和宿主机共用网络

自定义网络步骤

1、保证环境干净,先移除所有容器 docker rm -f $(docker ps -aq)

2、启动容器:docker run -d -P --name tomcat01 --net bridge tomcat------如果没有写--net,其实也是默认写了--net bridge

3、自定义网络

docker network create --driver bridge --sumnet 192.168.0.0/16 --getway 192.169.0.1 mynet  创建自己的网络

docker network inspect -------查看自己创建的网络信息

docker run -d -P --name tomcat02 --net bridge mynet tomcat ------将容器在自己创建的网络里启动

docker run -d -P --name tomcat03 --net bridge mynet tomcat

自定义网络好处是可以直接用容器名来ping

dockers exec -it tomcat02 ping 192.168.0.2

docker exec -it tomcat02 ping tomcat03

二、网络连通

两个不同网段的容器如何ping通

docker network connect 网络名 容器名------>不同网络容器连接:将容器加入要连接容器的网络中,即一个容器,两个IP

docker network connect mynet tomcat1 

实战:

部署一个redis集群

1、创建redis

2、查看创建的redis

3、启动容器--依次启动6个

4、创建一个集群

4.1 进入一个容器

4.2 创建一个集群

5、测试集群

原文地址:https://www.cnblogs.com/xiaoyuer2121/p/13943381.html