Docker网络初步详解
理解Docker网络
1.理解Docker0
#ip addr
lo:本机回环地址 127.0.0.1
eth0: 内网地址
docker0:docker生成的网卡。默认的,域名不能访问,--link可以打通连接
2.查看容器ip地址:
docker 命令 + ip addr
linux主机环境可以ping通容器内部
3.每启动一个docker容器时,docker就会给docker容器分配一个ip,
只要安装了docker,就会有一个网卡docker0,使用的是桥接模式,使用的是evth-pair技术
evth-pair技术:一对虚拟设备接口,它们都是成对出现的,一端连着协议,一端彼此相连。有此特性之后,
evth-pair技术充当一个桥梁,连接各种虚拟网络设备
OpenStac,Docker容器之间的连接,ovs的连接们都是使用的evth-pair技术
容器之间也可以互相ping通。
网络模型图:(桥接模式)
所有容器在未指定网络的情况下,都是ocker0路由的,docker会分配一个默认的可用ip。
Docker用的是linux的虚拟化网络技术,所有的网络接口都是虚拟的,虚拟的转发效率高(内网传递文件)
容器互联 --link:(不常使用)
docker exec -it tomcat02 ping tomcat02 不能ping通
docker run -d -P --name tomcat03 --link tomcat02 tomcat ping通
tomcat03 反向ping tomcat02时不能ping通。
# tomcat03:Name or service not known
原因:没有配置
docker inspect + id 查看容器的具体情况
--link:原理就是在hosts文件中绑定一个映射
128.18.0.4 id
自定义网络(容器互联):
查看所有的wangluo
docker network ls
网络模式:
bridge:桥接docker(默认模式,自己创建也使用bridge模式)
none:不配置网络
host:和宿主机共享网络
container:容器网络互通(用的少,局限性过大)
测试:
docker run -d -P --name tomcat01 --net bridge tomcat
默认模式创建
自定义创建网络:
docker network create --driver bridge --subnet 192.168.0.0/16(最多支持192.168.255.255)【255 * 255】 --gateway 192.168.0.1(网关)
docker network ls
docker network inspect ls
查看自己的网络
docker run -d -P tomcat-net-01 --net mynet tomcat
自定义的网络修复了docker0的缺点,不用--link也可以ping通,
网络联通:
不同网段之间的连通:
docker network connect mynet 容器01
联通之后直接将容器1放到了容器2的网络下