已经创建 且运行一段时间的docker容器 添加新的映射端口
Posted telegram
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已经创建 且运行一段时间的docker容器 添加新的映射端口相关的知识,希望对你有一定的参考价值。
如题,已经创建的容器,并且产生业务数据,不可能再通过docker run的形式映射新的端口,此种情况下,可分两种情况添加新端口:
第一种情况:现有容器中的服务不可以停止,且本机开启了iptables
这种情况下,可以直接用添加防火墙规则的形式,在iptables中加入端口映射 示例映射容器服务中的443端口
HOST> iptables -t nat -A DOCKER -p tcp --dport 443 -j DNAT --to-destination 172.17.0.2:443
HOST> iptables -t nat -A POSTROUTING -j MASQUERADE -p tcp --source 172.17.0.2 --destination 172.17.0.2 --dport https
HOST> iptables -A DOCKER -j ACCEPT -p tcp --destination 172.17.0.2 --dport https
如果没有开启iptables,很多环境下 默认都是关闭的,那么可以尝试haproxy tcp mode进行端口转发,此方法未实际验证,且需要额外服务。
第二中情况:容器可以停止,docker也可以停止
此种情况,通过修改docker配置文件的方式,添加新的端口,重启完之后,不影响现有数据和服务。
切记:操作之前,先停止容器中的服务,要不然直接关闭容器后再启动服务会产生很多问题。
以上是关于已经创建 且运行一段时间的docker容器 添加新的映射端口的主要内容,如果未能解决你的问题,请参考以下文章