脚本宝典收集整理的这篇文章主要介绍了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绑定 --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网络
以上是脚本宝典为你收集整理的docker network全部内容,希望文章能够帮你解决docker network所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。