win10主机无法与Docker容器通讯的坑

win10主机无法与Docker容器通讯的坑

问题

win10系统,上面装了个WSL(Ubuntu),在Ubuntu上装了个Docker。

Docker容器运行后,发现Ubuntu可以与Docker通讯(ping),但是win10不可以与Docker通讯。


解决

配置路由

思路是直接加一条路由,主机上发往Docker容器的请求直接发给Ubuntu,让Ubuntu传递。

win10中以管理员身份打开cmd

route add 172.18.0.0 mask 255.255.0.0 172.17.162.231

其中172.18.0.0是Docker容器的网段

255.255.0.0是Docker容器的掩码

172.17.162.231是WSL-Ubuntu的IP

这样就可以添加一条路由规则,把发往172.18.0.0这个网段的东西直接发给172.17.162.231,让Ubuntu转发。

C:\WINDOWS\system32>route add 172.18.0.0 mask 255.255.0.0 172.17.162.231
 操作完成!
C:\WINDOWS\system32>route print 172.18.0.0

IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
       172.18.0.0      255.255.0.0   172.17.162.231     172.17.160.1   5001
===========================================================================

可以看到我们的路由已经添加成功了

关闭防火墙

在win10的cmd中ping测试,但是此时还是没有反应。

这是由于防火墙导致的,关闭防火墙再测试就可以ping通了。

# 关闭防火墙
sudo ufw disable

你可能感兴趣的:(docker,容器)