docker映射端口的命令是 -p 比如可以用如下命令将容器的8080端口映射到主机的80端口。

$ docker run -p 80:8080 tomcat

不过端口映射生效的前提是,系统必须启用ip_forward。

1、编辑 /etc/sysctl.conf 文件,加入

net.ipv4.ip_forward=1

3、立即生效

$ sysctl -p /etc/sysctl.conf

3、检查是否生效

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

4、重启Docker

$ service docker restart

结束

题外:

如果你使用了firwalld, 可以通过打开asquerade达到相同的目的

$ firewall-cmd --add-masquerade
$ firewall-cmd --add-masquerade --permanent
$ firewall-cmd --list-all
FedoraWorkstation (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: dhcpv6-client ssh samba-client mdns
  ports: 1025-65535/udp 1025-65535/tcp
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

版权声明:如无特别声明,本文版权归 一年四季 所有,转载请注明本文链接。

(采用 CC BY-NC-SA 4.0 许可协议进行授权)

本文标题:《 docker posts 端口映射失败 》

本文链接:https://www.yucanlin.cn/operation/docker-ports-%E7%AB%AF%E5%8F%A3%E6%98%A0%E5%B0%84%E5%A4%B1%E8%B4%A5.html