由于我在windows版docker中用虚拟子网建了一个固定IP172.18.18.10的mysql容器
这个mysql容器通过端口映射使用localhost:3306能访问到,但是用172.18.18.10:3306访问不到
查了网上解决方案:
通过宿主机建立路由转发来实现宿主机和容器的通信,实际上windows的docker对于linux容器,配置了路由转发也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,建立子网实际上是不会有这个虚拟网卡的



