1.问题描述
由于我在windows版docker中用虚拟子网建了一个固定IP172.18.18.10
的mysql容器
这个mysql容器通过端口映射使用localhost:3306
能访问到,但是用172.18.18.10:3306
访问不到
查了网上解决方案:
通过宿主机建立路由转发来实现宿主机和容器的通信,实际上windows的docker对于linux容器,配置了路由转发也ping不到内部。记录一下这个坑
2 windows版docker为什么ping不通
实际上官网说了,如图:由于没有docker0网桥
windows不能ping通linux系统的docker容器,但是能ping通windows系统的docker容器
所以说,windows版docker配置路由转发也是行不通的
3 Linux版docker为什么能ping通
输入ifconfig
现在只有一个docker0网桥
然后建立一个docker子网,子网:172.18.18.0/16
,mysql容器172.18.18.10
直接ping172.18.18.10,发现能ping通
输入ifconfig
查看docker0网桥,发现多了一个虚拟网卡,这个就是我们用docker network
创建的子网的时候建立的虚拟网卡,让我们能够从宿主机ping到docker容器
这个在windows版docker上,如果容器为linux,建立子网实际上是不会有这个虚拟网卡的
更多推荐
windows版docker宿主机ping容器ping不通的坑
发布评论