Centos 7 docker 啟動容器 iptables 報 No chain/target/match by that name

星痕發表於2016-03-20

啟動一個有 nat 對映埠的容器時,iptables 報 No chain/target/match by that name

找了N多網站和官方issue後,還是沒找到真正的解決方法,網上到處轉載的只是分析了原因,並沒有明確的解決方案,為此與同事通宵加班終於解決了這個問題。

找到系統的/etc/sysconfig/iptables ,如果沒有用以下命令儲存一下,然後檢視裡邊的內容

發現內容如下

檢視啟動容器的報錯資訊發現-A DOCKER DOCKER鏈,但在iptables檔案裡並沒有找到,

由於之前在自己的系統(archlinux)學習使用docker時並沒遇到這問題,

所以馬上去看了下自己系統裡的iptables的檔案,

內容如下

對比後以去掉不相關的規則,以現*nat規則裡有以下的對於docker的配置

*filter 規則裡對docker的配置如下

去掉不相關規則後的配置檔案如下(可以直接用):

然後再加上自己伺服器的過濾規則,合併後覆蓋到Centos 7的 /etc/sysconfig/iptables 檔案

重啟iptables 服務

兩次啟動對應docker容器,

發現容器啟動成功,雖然有警告,但並不影響容器的使用

相關文章