Docker容器不断丢失互联网

时间:2014-07-15 09:49:13

标签: docker

我已配置在Centos 6.5上使用docker。容器经常丢失互联网。在这种情况下,我必须在主机上重启Docker。最近,我试图从一个失败的容器内运行yum更新。以下是/ var / log / docker

中的日志
2014/07/15 10:33:36 GET /v1.12/containers/update_test/json
[b601ba8c] +job container_inspect(update_test)
[b601ba8c] -job container_inspect(update_test) = OK (0)
2014/07/15 10:33:36 POST /v1.12/containers/update_test/attach?stderr=1&stdin=1&stdout=1&stream=1
[b601ba8c] +job container_inspect(update_test)
2014/07/15 10:33:36 POST /v1.12/containers/update_test/start
[b601ba8c] +job start(update_test)
[b601ba8c] -job container_inspect(update_test) = OK (0)
[b601ba8c] +job attach(update_test)
[b601ba8c] +job allocate_interface(5a5c0247441ef5872b531ba720ba1f7d8af2df1cbd47b4a98b84a7b995384d8b)
[b601ba8c] -job allocate_interface(5a5c0247441ef5872b531ba720ba1f7d8af2df1cbd47b4a98b84a7b995384d8b) = OK (0)
[b601ba8c] -job start(update_test) = OK (0)
2014/07/15 10:33:36 POST /v1.12/containers/update_test/resize?h=37&w=165
[b601ba8c] +job resize(update_test, 37, 165)
[b601ba8c] -job resize(update_test, 37, 165) = OK (0)
[b601ba8c] +job release_interface(5a5c0247441ef5872b531ba720ba1f7d8af2df1cbd47b4a98b84a7b995384d8b)
[b601ba8c] -job release_interface(5a5c0247441ef5872b531ba720ba1f7d8af2df1cbd47b4a98b84a7b995384d8b) = OK (0)
[error] container.go:492 5a5c0247441ef5872b531ba720ba1f7d8af2df1cbd47b4a98b84a7b995384d8b: Error closing terminal: invalid argument
[b601ba8c] -job attach(update_test) = OK (0)

如上所述,在主机上重新启动Docker可以解决问题。我不想继续重启docker,因为我打算通过docker运行生产应用程序。在这方面有人有任何想法吗?

如果您需要更多相关信息,请与我们联系。

3 个答案:

答案 0 :(得分:1)

我不好意思,我没有提到主机托管在Rackspace中。我很抱歉没有澄清(当时我认为这是无关紧要的)。 Rackspace的自动化程序一直在弄乱iptables,这显然影响了docker路由。 Rackspace建议在/ etc中的某个地方创建一个锁文件,以防止他们的自动例程触及我现在忘记的iptables;如果他们遇到这个问题,任何人都应该很难从中得到这个。

答案 1 :(得分:1)

Maduraiveeran 所建议,为防止Rackspace覆盖Docker的自定义iptables规则,您需要在/etc中创建一个锁定文件。该文件应命名为rackconnect-allow-custom-iptables

touch /etc/rackconnect-allow-custom-iptables

一旦创建了锁定文件,请使用sudo systemctl restart docker

重新启动docker守护进程。

https://support.rackspace.com/how-to/how-to-prevent-rackconnect-from-overwriting-custom-iptables-rules-on-linux-cloud-servers/

答案 2 :(得分:0)

如果您未在主机/etc/resolv.conf设置DNS,那么您可能会遇到一些互联网问题;如果您仍有此问题,请考虑使用--dns 209.244.0.3设置中的docker run;解决方案可能如下所示:

docker run -d --dns 209.244.0.3 centos webapp.sh

在这个问题上你可能需要的另一个有用的参数是--add-host,它会在容器中添加一个主机' /etc/hosts档案