我如何分配端口映射到现有的Docker容器?
我不确定是否在这里误解了某些内容,但似乎只能通过从映像创建新容器来设置端口映射。 有没有办法将端口映射分配给现有的Docker容器?
我也对这个问题感兴趣。
正如@Thasmo提到的那样,端口转发只能通过docker docker run
命令指定。
其他命令, docker start
没有-p
选项, docker port
只显示当前的转发。
要添加端口转发,我总是遵循这些步骤,
停止运行容器
docker stop test01
提交容器
docker commit test01 test02
注意:以上, test02
是我从test01
容器构建的新图像。
从提交的图像重新运行
docker run -p 8080:8080 -td test02
第一个8080是本地端口,第二个8080是集装箱端口。
您可以通过直接编辑/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
的hostconfig.json
文件来更改端口映射
您可以通过docker docker inspect <container_name>
命令确定[hash_of_the_container],并且“Id”字段的值是散列值。
1) stop the container
2) change the file
3) restart your docker engine (to flush/clear config caches)
4) start the container
所以你不需要用这种方法创建一个图像。 您也可以在此更改重新启动标志。
PS您可以访问https://docs.docker.com/engine/admin/以了解如何根据您的主机正确重启Docker引擎。 我使用sudo systemctl restart docker
来重新启动在Ubuntu 16.04上运行的Docker引擎
如果“存在”是指“正在运行”,那么它不是(当前)添加端口映射的可能性。
但是,如果您需要在正在运行的容器中公开服务而不停止/重新启动服务,则可以动态地添加新的网络接口(例如管道)。
链接地址: http://www.djcxy.com/p/18229.html上一篇: How do I assign a port mapping to an existing Docker container?