我想更改活动容器上的已发布端口,例如
docker run -p 80:80 --name nginx_live nginx
然后,将其更改为另一个端口,例如-p 8080:80
答案 0 :(得分:6)
Docker没有一种机制,可以在容器启动后更改已发布的容器端口。发布端口时,会发生两件事:
iptables
表格中创建nat
规则,将流量重定向到" public"端口到容器。虽然您理论上可以手动更新防火墙规则以使服务在新端口上可用,但您将无法取消绑定Docker代理,因此无法使用该服务启动任何新服务" public& #34;端口。
您最好的做法是删除容器并重新部署它,或者依靠某种前端代理来处理重定向,而不是使用Docker的端口发布机制。
答案 1 :(得分:2)
这不是Docker功能。
但是添加另一层间接是很容易的:在主机上公开一个容器端口,然后运行一个nginx实例或一个防火墙FORWARD规则,将你想要的任何本地端口映射到该docker-shared端口。