搜尋

首頁  >  問答  >  主體

docker 運行的時候映射了主機端口,在iptables裡面還需要開放嗎?

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 500,4500,1701
ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:500
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:500
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:4500
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:1701
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1723

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
DOCKER-ISOLATION  all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  192.168.18.0/24      0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     all  --  10.31.0.0/24         0.0.0.0/0           
ACCEPT     all  --  10.31.1.0/24         0.0.0.0/0           
ACCEPT     all  --  10.31.2.0/24         0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain DOCKER (2 references)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            172.17.0.2           udp dpt:4500
ACCEPT     udp  --  0.0.0.0/0            172.17.0.2           udp dpt:500
ACCEPT     tcp  --  0.0.0.0/0            172.17.0.3           tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            172.17.0.5           tcp dpt:443
ACCEPT     tcp  --  0.0.0.0/0            172.17.0.5           tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            172.17.0.7           tcp dpt:9001
ACCEPT     tcp  --  0.0.0.0/0            172.18.0.2           tcp dpt:993
ACCEPT     tcp  --  0.0.0.0/0            172.18.0.2           tcp dpt:587
ACCEPT     tcp  --  0.0.0.0/0            172.18.0.2           tcp dpt:143
ACCEPT     tcp  --  0.0.0.0/0            172.18.0.2           tcp dpt:25

Chain DOCKER-ISOLATION (1 references)
target     prot opt source               destination         
DROP       all  --  0.0.0.0/0            0.0.0.0/0           
DROP       all  --  0.0.0.0/0            0.0.0.0/0           
RETURN     all  --  0.0.0.0/0            0.0.0.0/0

我下面那些25,143,587那些應該是docker自動新增的,我還需要開放主機的對應連接埠才能存取嗎?

女神的闺蜜爱上我女神的闺蜜爱上我2699 天前1742

全部回覆(1)我來回復

  • 学习ing

    学习ing2017-07-05 10:48:55

    要看你 docker 的網路模式 ,

    1. 如果是 bridge 模式,連接埠對映規則為 ip:port:targetPort,

      1. 舉例來說0.0.0.0:80:8080,這種情況表示宿主機的80 埠與容器的8080 埠做了映射關係,並且沒有對IP 做限制,這時任何對該宿主機的80 埠請求都會轉送到容器內的8080 連接埠上,無需額外的iptables 設定。 (即使防火牆事先沒有開放 80 端口,也是可行的。因為端口映射會自行修改 iptables 規則)。

      2. 如果有明確指定 IP 位址,則 iptables 規則會限定,僅透過該 IP 的 80 端口,才能存取到容器內的 8080 端口。 docker 連接埠對映實際上就是透過修改 iptables 規則來實現的網路互通。

    2. 如果是 net 模式,那和你在宿主機上起一個端口監聽是一樣的,不會有額外的 iptables 規則的變動,這時需要手動設置 iptables 允許外部訪問;

    回覆
    0
  • 取消回覆