运行中的docker容器添加端口映射

1、查看要添加的容器IP地址

docker inspect 'container' | grep IPAddress

2、查看NAT表中的DOCKER链

iptables -t nat --list-rules DOCKER

3、添加映射规则

iptables -t nat -A DOCKER ! -i '容器的网络ID' -p tcp -m tcp --dport '宿主机要暴露的端口' -j DNAT --to-destination '上面容器的IP':'容器内部端口'

4、查看NAT表中的POSTROUTING链

iptables -t nat --list-rules POSTROUTING

5、添加映射规则

iptables -t nat -A POSTROUTING -s '容器IP'/32 -d '容器IP'/32 -p tcp -m tcp --dport '容器内部端口' -j MASQUERADE

6、查看FILTER表中的DOCKER链

iptables --list-rules DOCKER

7、添加映射规则

iptables -t filter -A DOCKER -d '容器IP'/32 ! -i '容器网络ID' -o '容器网络ID' -p tcp -m tcp --dport '容器内部端口' -j ACCEPT

参考资料:https://www.jb51.net/article/142462.htm