Docker容器没有互联网,我尝试了很多解决方案

时间:2018-03-14 17:58:39

标签: ubuntu docker digital-ocean iptables internet-connection

我在数字海洋上的Ubuntu 16.04上运行了docker容器。他们工作得很好,但有一天(我认为它发生在 TOR1 Droplet Reboot 2018-02-28 16:00 UTC [幽灵和崩溃缓解] 但是我不确定)他们已经失去了他们的互联网连接,我不知道为什么以及如何使它工作 我从其他答案尝试了许多不同的解决方案但没有成功。 我尝试了this问题的答案,试图禁用 ufw ,尝试重新启动操作系统。我甚至试图更新Docker和Ubuntu,希望它最终能够工作,但事实并非如此 我怀疑它可能是 iptables 的问题,但我不知道如何处理它 名为 iptable.rules.sh 的服务器上有一个 sh 脚本,其中包含以下内容:

#/bin/sh
#blow away the DOCKER chain
sudo iptables -F DOCKER

#add http / https
sudo iptables -A DOCKER -p tcp --dport https -j ACCEPT -d 172.17.0.4
sudo iptables -A DOCKER -p tcp --dport http -j ACCEPT -d 172.17.0.4

#loopback for mongodb
sudo iptables -A DOCKER -p tcp --dport 27017 -j ACCEPT -d 172.17.0.2 -i lo

但是当我运行它时,它说:

iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.

我可以运行带有互联网连接的容器的唯一方法是使用 - net = host ,但我不能因为链接容器。

所以我很难过并向你求助。

1 个答案:

答案 0 :(得分:0)

问题在于Docker更新,实例重新启动以及由前一个维护者创建的/etc/docker/daemon.json文件{"iptables": false}。这些事情彼此重叠。

我找到了解决方案in this answer 或者更多描述in this article