前提:保证环境干净,清空所有镜像 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、测试集群