如何在Docker构build中访问互联网?

首先,我使用以下命令启动docker:

docker --iptables=false -d 

当我想开始我的docker集装箱,我开始这样

 docker run --net=host myImageName 

使用networking模式的主机可以让我从docker集装箱访问互联网。

但是,当我写DockerFile,我不能让它在主机模式下启动。

那么我怎样才能在dockerbuild设中访问互联网。

另外,我必须在模式下运行docker –iptables = false,因为我在iptables中没有nat表。 我不想要它( 原因链接 )

所以在这种模式下,如何在DockFile构build中访问互联网。

  1. 设置DEFAULT_FORWARD_POLICY="ACCEPT" @ /etc/default/ufw
  2. 添加以下行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它,它基本上告诉你我在答案的开头写了什么。

希望能帮助到你