如何在Docker构build中访问互联网?
首先,我使用以下命令启动docker:
docker --iptables=false -d
当我想开始我的docker集装箱,我开始这样
docker run --net=host myImageName
使用networking模式的主机可以让我从docker集装箱访问互联网。
但是,当我写DockerFile,我不能让它在主机模式下启动。
那么我怎样才能在dockerbuild设中访问互联网。
另外,我必须在模式下运行docker –iptables = false,因为我在iptables中没有nat表。 我不想要它( 原因链接 )
所以在这种模式下,如何在DockFile构build中访问互联网。
- 设置
DEFAULT_FORWARD_POLICY="ACCEPT"
@/etc/default/ufw
- 添加以下行JUST BEFORE“* filter”@
/etc/ufw/before.rules
* NAT
:POSTROUTING ACCEPT [0:0]
– 一个POSTROUTING! -o docker0 -s 172.17.0.0/16 -j MASQUERADE
承诺
我和很多人一样,不得不添加--iptables=true
来确保我的UFW规则得到了Docker的尊重。 但是,所有的文章似乎都遗漏了一个重要的事情,那就是…重新启动计算机的时间,当您启用该设置并重新启动Docker引擎时所完成的一系列configuration将会丢失。 问题? 您的容器将不再连接到internetz。
最终我find了一个“完整解决scheme”的文章。 你可以在这里find它,它基本上告诉你我在答案的开头写了什么。
希望能帮助到你