我不确定我是否在这里误解了某些东西,但似乎只能通过从图像创建新容器来设置端口映射。有没有办法将端口映射分配给现有的 Docker 容器?
您可以通过直接编辑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 作为快照。
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
您可以通过命令确定 [hash_of_the_container]docker inspect <container_name>并且“Id”字段的值是哈希值。
docker inspect <container_name>
docker stop <container_name>
docker start <container_name>
因此,您不需要使用这种方法创建图像。您还可以在此处更改重新启动标志。
PS 您可以访问 https://docs.docker.com/engine/admin/了解如何根据您的主机正确重启您的 docker 引擎。我曾经sudo systemctl restart docker重新启动在 Ubuntu 16.04 上运行的 docker 引擎。
sudo systemctl restart docker