Heim  >  Fragen und Antworten  >  Hauptteil

Der Host-Port wird zugeordnet, wenn Docker ausgeführt wird. Muss er noch in iptables geöffnet werden?

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

Die Nummern 25, 143 und 587 unten sollten automatisch von Docker hinzugefügt werden. Muss ich noch den entsprechenden Port des Hosts öffnen, um darauf zuzugreifen?

女神的闺蜜爱上我女神的闺蜜爱上我2632 Tage vor1671

Antworte allen(1)Ich werde antworten

  • 学习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 允许外部访问;

    Antwort
    0
  • StornierenAntwort