我不确定我是否在这里误解了某些东西,但似乎只能通过从图像创建新容器来设置端口映射。有没有办法将端口映射分配给现有的 Docker 容器?
原文由 thasmo 发布,翻译遵循 CC BY-SA 4.0 许可协议
我不确定我是否在这里误解了某些东西,但似乎只能通过从图像创建新容器来设置端口映射。有没有办法将端口映射分配给现有的 Docker 容器?
原文由 thasmo 发布,翻译遵循 CC BY-SA 4.0 许可协议
我也对这个问题感兴趣。
正如 @Thasmo 提到的,只能使用 docker run
(和 docker create
)命令指定端口转发。
其他命令, docker start
没有 -p
选项和 docker port
只显示当前转发。
要添加端口转发,我总是按照以下步骤操作,
docker stop test01
docker commit test01 test02
注意: 以上 test02
是我从 test01
容器构建的新图像。
docker run -p 8080:8080 -td test02
其中第一个 8080 是本地端口,第二个 8080 是容器端口。
原文由 Fujimoto Youichi 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答2k 阅读✓ 已解决
2 回答2.4k 阅读✓ 已解决
2 回答795 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答1.4k 阅读
1 回答1.6k 阅读
2 回答1.2k 阅读
您可以通过直接编辑
hostconfig.json
文件在/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
或/var/snap/docker/common/var-lib-docker/containers/[hash_of_the_container]/hostconfig.json
来更改端口映射,我相信,如果您将 Docker 安装为快照。您可以通过
docker inspect <container_name>
命令确定 [hash_of_the_container],“Id”字段的值是哈希值。docker stop <container_name>
)。docker start <container_name>
)。因此,您不需要使用这种方法创建图像。您还可以在此处更改重新启动标志。
_PS 您可以访问 https://docs.docker.com/engine/admin/ 了解如何根据您的主机正确重启您的 docker 引擎。我使用
sudo systemctl restart docker
重新启动在 Ubuntu 16.04 上运行的 docker 引擎_。