首先,我使用命令启动docker:
docker --iptables=false -d
当我想启动我的docker容器时,我就像这样启动它
docker run --net=host myImageName
使用网络模式的主机可以让我从docker容器访问互联网。
但是当我写dockerFile时,我无法让它以主机模式启动。
那么如何在docker build中访问互联网。
另外,我必须在--iptables = false模式下运行docker,因为我在iptables中没有nat表。我不想要它。(Reason link)
所以在这种模式下,我如何在dockFile构建中访问互联网。
答案 0 :(得分:2)
DEFAULT_FORWARD_POLICY="ACCEPT"
@ /etc/default/ufw
/etc/ufw/before.rules
* NAT
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING! -o docker0 -s 172.17.0.0/16 -j MASQUERADE
COMMIT
我和许多人一样,必须添加--iptables=true
以确保我的UFW规则得到Docker的尊重。但是所有的文章似乎都忽略了一个重要的事情......重新启动计算机的时间,当您即时启用该设置并重新启动Docker引擎时完成的一系列配置将会丢失。问题?您的容器将不再连接到internetz。
最终我发现了一篇带有“完整解决方案”的文章。你可以找到它here,它基本上告诉你我在答案开头写的是什么。
希望有所帮助