最新消息:欢迎光临!

解决win10 docker toolbox无法访问直接ip访问容器

docker findever 903浏览 0评论

新买的电脑,win10家庭版的,没有人权,只能用toolbox版本的,因为没有路由配置,所以默认是无法通过ip从主机访问到容器的

那么首先想到的就是添加静态路由来指定访问路由(docker虚拟机是192.168.99.100,172.17.0.0和172.18.0.0是容器使用的ip段):

route -p add 172.17.0.0 mask 255.255.0.0 192.168.99.100
route -p add 172.18.0.0 mask 255.255.0.0 192.168.99.100

添加了路由之后结果发现还是访问了,这就奇了怪了,主机到docker虚拟机,以及docker虚拟机到容器都是通的,但是连起来就不通了

经过一番搜索,发现win10下docker在启动的时候默认加了一条过滤规则,
ACCEPT     all  —  any    docker0  anywhere  anywhere   ctstate RELATED,ESTABLISHED

导致请求无法转发,知道这个就好办了,首先在docker虚拟机上通过route -e看下网段和网卡对应关系:

  

docker@default:~$ route -e                                                                                                                                                                     
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         10.0.2.2        0.0.0.0         UG        0 0          0 eth0
10.0.2.0        *               255.255.255.0   U         0 0          0 eth0
127.0.0.1       *               255.255.255.255 UH        0 0          0 lo
172.17.0.0      *               255.255.0.0     U         0 0          0 docker0
172.18.0.0      *               255.255.0.0     U         0 0          0 br-45009f10ac60
192.168.99.0    *               255.255.255.0   U         0 0          0 eth1

然后放通转发规则:

sudo iptables -t filter -I FORWARD 3 -o docker0 -j ACCEPT
sudo iptables -t filter -I FORWARD 3 -o br-45009f10ac60 -j ACCEPT

再在主机上ping一下容器,发现可以正常访问了,开心

转载请注明:Findever » 解决win10 docker toolbox无法访问直接ip访问容器

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址