在Windows宿主机中连接虚拟机中的Docker容器
-
简单拓扑图
宿主机(windows)--------->虚拟机(192.168.10.161)---------->docker容器 (172.18.0.2)
如果此时在宿主机中ping Docker容器是ping不同的,因为在宿主机上没有通往172.18.0.2网络的路由,宿主机会将发往172.18.0.2网络的数据发往默认路由,这样就无法到达容器。
- 解决方法:
1. 首先要保证在虚拟机中能够连接到Docker容器中,用ping测试是否通畅
2. 关闭虚拟中的防火墙: systemctl stop firewalld.service
3. 打开宿主机(windows)的cmd,在其中添加通往 172.18.0.2 网络的路由。
通往 172.18.0.2 网络的数据包由192.168.10.161来转发
在cmd下(管理员模式) route add -p 172.18.0.2 mask 255.255.0.0 192.168.10.161 (-p表示永久添加)
查看添加的路由:
route print
此时在宿主机上就能ping通docker的IP了
ping 172.18.0.2 连接成功!
如果还是连不上docker中的IP地址,建议把虚拟中的的centos的防火墙打开试试,神奇般的可以了