06 docker网络
我们只要安装docker,就会多一个网卡:docker0,docker0与宿主是直连的
![image-20211018144313167](/Users/user/Library/Application Support/typora-user-images/image-20211018144313167.png)
01 容器网络基础
每启动一个容器,docker就会给容器分配一个ip,与docker0是桥接模式。利用的是evth-pair技术,网卡都是成对出现的
容器默认是的网络是docker0,可以自定义指定网络
- evth-pair技术
一堆虚拟网卡技术,一端连着协议,一端彼此相连
- 容器与宿主是可以相互通信的
- 容器与容器是可以通讯的
docker使用的是linux的桥接,docker0是各个容器的网桥,容器间的通讯是基于docker0路由连接的
![image-20211018150728742](/Users/user/Library/Application Support/typora-user-images/image-20211018150728742.png)
docker中所有的网络接口都是虚拟的
02 --link
老的,不建议使用了
通过名字链接,ip可以变化
docker run -d --name tomcat01 --link tomcat01 tomcat
docker exec -it tomcat02 ping tomcat01
可以直接根据--link
后的名字连接
本质:就是在docker容器中的/etc/hosts
中,加了ip与名字的映射
![image-20211018152114620](/Users/user/Library/Application Support/typora-user-images/image-20211018152114620.png)
03 自定义网络
推荐使用
不使用docker0,因为docker0不支持容器名(域名)访问
- 查看所有的docker网络
- bridge: 桥接,docker模式
- none:不配置网络
- host:与宿主机共享网络
- container:容器内网络连通(不建议使用)
![image-20211018152359181](/Users/user/Library/Application Support/typora-user-images/image-20211018152359181.png)
- 创建网络
docker netsork create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 网卡名字
注意:
--driver
跟子网
--gatway
网关地址,一般子网的第一位
- 启动容器使用自定义的网络
docker run -d tomcat --net 网卡名字
注意:
用自定义的网络,可以直接通过容器名字访问(ping)
04 网络连通的操作
docker0的容器和自定义的网络容器连通
docker network connect [OPTIONS] NETWORK CONTAINER
docker network connect 自定义网络 要连通的容器
注意:
是把要连接的容器加到自定义网络的配置中
一个容器两个ip