如何在docker build中访问互联网?

时间:2015-11-27 03:39:36

标签: docker dockerfile

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

docker --iptables=false -d

当我想启动我的docker容器时,我就像这样启动它

docker run --net=host myImageName

使用网络模式的主机可以让我从docker容器访问互联网。

但是当我写dockerFile时,我无法让它以主机模式启动。

那么如何在docker build中访问互联网。

另外,我必须在--iptables = false模式下运行docker,因为我在iptables中没有nat表。我不想要它。(Reason link

所以在这种模式下,我如何在dockFile构建中访问互联网。

1 个答案:

答案 0 :(得分:2)

  1. 设置DEFAULT_FORWARD_POLICY="ACCEPT" @ /etc/default/ufw
  2. 在“* filter”@ /etc/ufw/before.rules
  3. 之前添加以下行
      

    * 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,它基本上告诉你我在答案开头写的是什么。

    希望有所帮助