docker network
作者:互联网
docker 如何处理网络访问
docker容器里项目访问项目
测试
docker run -d -P --name tomcat01 tomcat
拉一个tomcat7.0有net-tools
docker run -d -P --name tomcat01 tomcat:7.0
docker exec -it tomcat01 ip addr
linux可以ping通容器
每启动一个docker容器
docker就会给容器分配ip 只要安装docker 就会有网卡
docker为桥接模式,使用的技术是evh-pair技术
启动容器后,linux有了新网卡,两边网卡差不多相似
再次启动容器
docker run -d -P --name tomcat02 tomcat:7.0
evth-pair 容器带来的网卡都为一对
evth-pair 充当桥梁 连接虚拟网络设备
openstack docer ovs 都是evth-pair技术
tomcat01 能ping通 tomcat02
容器与容器间可以互相ping通
通过linux作为路由器,转发到tomcat02
docker使用linux的桥接
docker所有网络接口都是虚拟的 虚拟的转发效率高
容器删除后,对应网桥的一对直接无了
如果docker,ip发生变化怎么访问呢?
则使用服务名与docker绑定
--link
[root@docker ~]# docker exec -it tomcat02 ping tomcat01
无法ping通
[root@docker ~]# docker run -d -P --name tomcat03 --link tomcat02 tomcat:7.0
5725478926a43edbe5eabdb1b0188e747a675a4e1e476e8a5df47d924b7d0d7b
[root@docker ~]# docker exec -it tomcat03 ping tomcat02
PING tomcat02 (172.17.0.3) 56(84) bytes of data.
64 bytes from tomcat02 (172.17.0.3): icmp_seq=1 ttl=64 time=0.125 ms
64 bytes from tomcat02 (172.17.0.3): icmp_seq=2 ttl=64 time=0.058 ms
可以ping通
通过服务名来访问可以ping通
[root@docker ~]# docker exec -it tomcat02 ping tomcat03
相反则不行
查看docker网络
[root@docker ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
a4d70d5796e4 bridge bridge local
fc2805a7d397 host host local
c680f1ffd777 none null local
[root@docker ~]#
docker network inspect a4d70d57
通过inspect来看
[root@docker ~]# docker exec -it tomcat03 cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.3 tomcat02 f8163365d0d8
172.17.0.4 5725478926a4
[root@docker ~]#
link配置etc/hosts
自定义网络!不使用docker0
定义docker网络
标签:容器,network,--,tomcat02,ping,docker,root 来源: https://www.cnblogs.com/supermao12/p/16167296.html