Docker网络(一) : docker0 网络
理解 docker0 网络
查看linux ip
ip addr
此时没运行任何docker容器,只有三个网卡
有三个网络,docker是如何处理容器网络访问的
查看容器的内部网络地址
docker exec -it mytomcat ip addr
发现容器启动的时候会得到一个 eth0@if4720 ip地址 docker自动分配的
思考:linx能不能ping通容器内部?
可以ping通容器内部
原理
我们每启动一个docker容器,docker就会给新生成的docker容器分配一个ip,我们只要安装了docker,就会有一个网卡docker0 使用的桥接模式 ,使用的技术是evth-pair技术
再次测试ip addr 会发现linux会增加一个网卡
linux本机网卡
容器内部网卡
我们发现这个容器带来网卡,都是一对一对的
evth-pair 就是一对的虚拟设备接口,他们都是成对出现的,一段连着协议,一段彼此相连
#正因为有这个特性,evth-pair 充当一个桥梁,连接各种虚拟网络设备的
openstac, Docker容器之间的连接,OVS的连接,都是使用evth-pair 技术
测试下容器与容器之间是否能可以ping通
结论:容器与容器之间是可以相互ping通的
网络模型图
结论: tomcat01和tomcat02是公用的一个路由器, docker0.
所有的容器不指定网络的情况下,都是docker0路由的, docker会给我们的容器分配一个默认的可用IP
255.255.0.1/16 16代表位数 一次8位两次16位
00000000.00000000.00000000.00000000 二进制网络
255.255.255.255 十进制
所有ip分配不应该是 255.255.0.255 而是 255.255.0.0
真正能分配的ip个数是 255*255-0.0.0.0(回环地址) - 255.255(最终地址) 约等于65535
如果为24
255.255.0.1/24 代表只有最后的255
24 域 局域网
A B C类网络
总结
Docker使用的是linux的桥接,宿主机中是Docker容器的网桥 docker0
核心:linux虚拟网络技术
Docker中的所有网络接口都是虚拟的,虚拟的转发效率高(内网传递文件)
高可用!
思考:编写了一个微服务,去连接 database url=ip:
每次用docker去启动都会分配一个新的ip,ip变了就失效了
项目不重启,数据库ip更换了,希望可以处理这个问题,可以通过名字来进行访问容器?
解决:–link