添加新的端口号到已有docker容器
我们无法直接向正在运行的 Docker 容器添加端口映射。 Docker 的设计使得端口映射在容器创建时就已确定。 要添加新的端口映射,需要停止容器,然后使用新的端口映射重新启动它。我们可以通过反向代理来动态的给运行中的docker添加新的端口。
对于生产环境,直接修改容器的端口映射不是最佳实践。 更好的方法是使用 Docker 网络和反向代理(例如 Nginx 或 Traefik)。
创建 Docker 网络: docker network create my-network
连接现有容器到网络: docker network connect my-network <container_name>
运行反向代理容器: docker run -d --name proxy --network my-network -p <host_port>:<container_port> nginx 这会运行一个 Nginx 容器,监听主机上的 <host_port> 端口,并将请求转发到你的容器的 <container_port> 端口。 你需要配置 Nginx 的配置文件来实现转发。
这种方法的好处是:
你可以轻松地添加或修改端口映射,而无需停止或重新启动你的主要容器。它提供了更好的负载均衡和安全性。