Docker容器没有第二次启动(iptables)

时间:2015-07-15 06:22:31

标签: ubuntu docker iptables

使用本指南http://docs.graylog.org/en/1.1/pages/installation/docker.html我在Ubuntu 14.04服务器上设置了Docker容器。

第一次使用命令,按预期启动容器。

docker run -t -p 9000:9000 -p 12201:12201 graylog2/allinone

我能够打开端口9000上公开的Web界面。

当我停止Container并尝试使用相同的命令再次运行它时,我收到此错误:

Error response from daemon: Cannot start container  c5cc5831fe854801345ffa2370fdb4f00f4182e209fe1af78233c93be3952bb1:
iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 12201 -j 
DNAT --to-destination 172.17.0.9:12201 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)

在没有任何-p参数的情况下启动容器会导致正在运行的容器。但港口似乎没有曝光。我无法访问网络界面。 " docker ps"的输出看起来像这样:

84d322d35d58        graylog2/allinone   "/opt/graylog/embedd   9 minutes ago       Up 9 minutes        
443/tcp, 514/tcp, 4001/tcp, 9000/tcp, 514/udp, 
12201/tcp, 12900/tcp, 12201/udp   focused_elion  

对我而言,看起来端口是暴露的。但是主机没有将请求转发到Docker容器。

删除容器并重新安装Docker并再次安装Container后,它会在第一次启动时再次运行。但第二次失败了。

欢迎任何提示或指示!

1 个答案:

答案 0 :(得分:0)

希望docs.docker.com的以下段落可以帮到你。为我工作......

  

糟糕!在你停下容器后,你接到电话说   另一个开发人员需要回收容器。从这里你有两个   选项:您可以创建新容器或重新启动旧容器。让我们   看看开始我们以前的容器备份。

getview
     

现在再次快速运行$ docker start nostalgic_morse nostalgic_morse 以查看正在运行的容器   备份或浏览到容器的URL以查看应用程序   响应。

     

注意:同样可用的是运行停止的docker restart命令   然后从容器开始。