问题:
如何在已创建的容器上暴露更多端口?
分析:
一般来讲,我们在构建镜像或创建容器的时候指定容器暴露哪些端口,Docker没有提供其他的方法来暴露容器中的端口;
看看Docker暴露端口的手段发现暴露端口这事儿是通过传统的iptables来实现的,于是乎,只需要添加相应的iptables规则就可以搞定了,如:
to expose the container’s port 8000 on your localhosts port 8001:
1 2 |
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000 |
参考:
http://stackoverflow.com/questions/19897743/exposing-a-port-on-a-live-docker-container
https://www.google.com.hk/?gws_rd=cr,ssl#safe=strict&q=docker+port+mapping+after+run