2017-11-25 174 views
0

嘿,我對這些碼頭工具很陌生。我試圖用bitbucket啓動Docker容器,但是我得到了這個輸出。Docker IP-TABLES錯誤

[email protected]:~# docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket-server 
6da32052deeba204d5d08518c93e887ac9cc27ac10ffca60fa20581ff45f9959 
docker: Error response from daemon: driver failed programming external connectivity on endpoint bitbucket (55d12e0e4d76ad7b7e8ae59d5275f6ee85c8690d9f803ec65fdc77a935a25110): (iptables failed: iptables --wait -t filter -A DOCKER ! -i docker0 -o docker0 -p tcp -d 172.17.0.2 --dport 7999 -j ACCEPT: iptables: No chain/target/match by that name. 
(exit status 1)). 
[email protected]:~# 

每次我試圖激活任何搬運工 容器時得到了相同的輸出。有人能幫我嗎?

P.S.還有一個問題。

172.1.0.2是什麼意思?我只能說,這不是我的IP。

回答

0

172.1 .0.2將分配給默認多克爾橋網絡內的容器中的IP(docker0虛擬接口)。儘管您正在指示Docker引擎「發佈」(Docker術語中)兩個端口,但這些內容無法從外部訪問。

爲此,引擎使用iptables創建端口轉發規則,iptables會將所有傳入流量轉發到主機所有接口上的端口tcp/7990和tcp/7999到172.17.0.2的相同端口在docker0接口上(容器中的進程希望收聽)。

它看起來像DOCKER iptables鏈,發生這種情況不存在。也許你有其他工具來操縱iptables,這可能會抹去Docker引擎正在做的事情。嘗試識別它們並重新啓動Docker引擎(它應該在啓動時重新創建所有內容)。

您還可以指示引擎不要通過適當地配置Docker守護進程來操縱iptables。如果你想使用網橋驅動程序,你需要自己設置(儘管你也可以使用主驅動程序)。 Here就是一個很好的例子。