公司服務器由於斷電重啟,部署在docker服務上的一些web服務需要重新開啟容器,
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d77c2c6b3650 chandao:latest "/app/docker-entrypo…" 7 days ago Up About an hour 0.0.0.0:7075->80/tcp chandao
當重新開啟容器的時候,web服務頁面無法訪問
[root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 18807008623c centos:latest "/bin/bash" 3 days ago Exited (255) About an hour ago heuristic_aryabhata d77c2c6b3650 chandao:latest "/app/docker-entrypo…" 7 days ago Up About an hour 0.0.0.0:7075 ->80/tcp chandao 12d299f61e0b djltomcat:latest "/root/run.sh" 2 weeks ago Exited (255) About an hour ago 0.0.0.0:7074 ->8080/tcp kjxy [root@localhost ~]# docker start kjxy kjxy [root@localhost ~]# [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d77c2c6b3650 chandao:latest "/app/docker-entrypo…" 7 days ago Up About an hour 0.0.0.0:7075->80/tcp chandao 12d299f61e0b djltomcat:latest "/root/run.sh" 2 weeks ago Up 27 seconds 0.0.0.0:7074->8080/tcp kjxy [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# [root@localhost ~]# systemctl is-active firewalld inactive
於是重新啟動了一下容器,報如下錯誤
[root@localhost ~]# docker stop kjxy kjxy [root@localhost ~]# [root@localhost ~]# docker start kjxy Error response from daemon: driver failed programming external connectivity on endpoint kjxy (d347e043e31906b2bcb2733437cc52fd96fc653c3fcca18b664f65940da9db79): (ip tables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 7074 -j DNAT --to-destination 172.17.0.6:8080 ! -i docker0: iptables: No chain/target/match by that name. (exit status 1)) Error: failed to start containers: kjxy [root@localhost ~]#
查看容器詳細信息
[root@localhost ~]# docker inspect kjxy [ { "Id": "12d299f61e0bccd29d35bffe5e98ff6abba934673c457e50246d1a857ebe4374", "Created": "2019-03-05T05:22:35.219042191Z", "Path": "/root/run.sh", "Args": [], "State": { "Status": "exited", "Running": false, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 0, "ExitCode": 137, "Error": "driver failed programming external connectivity on endpoint kjxy (6206f4102fb1f8a007b2306fc9b9caa3e87abd8e00d4a26a78b72e2242292970): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 7074 -j DNAT --to-destination 172.17.0.6:8080 ! -i docker0: iptables: No chain/target/match by that nam e.\n (exit status 1))", "StartedAt": "2019-03-20T00:45:14.267504968Z", "FinishedAt": "2019-03-20T01:26:36.1111497Z" },
在網上找了一篇文章
原文鏈接
https://www.cnblogs.com/hailun1987/p/7518306.html
http://blog.sina.com.cn/s/blog_8ea8e9d50102wwf8.html
https://blog.csdn.net/czz1141979570/article/details/78752671
原因:
docker服務啟動時定義的自定義鏈DOCKER由於某種原因被清掉
重啟docker服務及可重新生成自定義鏈DOCKER
解決辦法:
重啟docker服務后再啟動容器
systemctl restart docker
問題解決
end