问题场景
部署自己开发的应用时,无法通过docker run -p 端口号:端口号
的形式映射端口。
解决方案
先获取docker内的IP地址
docker inspect 容器id |grep IPAddress
之前容器内配置的端口号是15680
iptables -t nat -A DOCKER -p tcp --dport 15680 -j DNAT --to-destination 172.17.0.2:15680
执行完后现在在外部也可以通过端口访问到这个应用了
执行样例
[root@ks-allinone ~]# docker inspect 3e80c57d69ab |grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
[root@ks-allinone ~]# iptables -t nat -A DOCKER -p tcp --dport 15680 -j DNAT --to-destination 172.17.0.2:15680