我不确定在这里是否误解了一些东西,但是似乎只能通过从映像创建新容器来设置端口映射。是否可以将端口映射分配给现有Docker容器?
您可以通过直接在以下位置编辑hostconfig.json
文件
来更改端口映射/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
您可以通过docker inspect <container_name>
命令确定[hash_of_the_container] ,“
Id”字段的值为哈希。
1) stop the container
2) stop docker service (per Tacsiazuma's comment)
3) change the file
4) restart your docker engine (to flush/clear config caches)
5) start the container
因此,您无需使用这种方法来创建图像。您也可以在此处更改重新启动标志。
PS:您可以访问
https://docs.docker.com/engine/admin/,
以了解如何根据主机正确重新启动Docker引擎。我曾经sudo systemctl restart docker
重启过在Ubuntu 16.04上运行的Docker引擎
我不确定我是否误解了这里的某些东西,但似乎只有通过从映像创建一个新容器来设置端口映射才是可能的。是否有一种方法将一个端口映射分配给一个现有的Docker容器?
目标是运行两个容器的。一个容器应该映射到主机上的8080端口,另一个映射到8081端口。这是docker compose的
问题内容: 我们正在使用副本3的docker swarm模式在docker容器中部署风暴超级用户。现在,我们想通过浏览器访问超级用户登录。 我们公开了可以访问Storm UI的端口8080。一切正常。现在,storm也将其日志文件公开在端口8000上。由于我们只有一个nimbus和3个超级用户,因此通过端口8000访问nimbus日志非常容易。 我们在使用docker swarm服务部署的主管上遇
问题内容: 当我启动新容器时,Docker会自动为它们分配一些MAC地址。我很好奇这项作业是否有模式。MAC地址可以更改吗? $泊坞窗网络检查网桥 问题答案: Docker开始为第一个容器分配始终相同的mac ,然后为每个不同的容器将每个mac增加一个。 不知道为什么他们要使用该mac地址。看来与oui数据库中的任何实际供应商都不匹配。查看有关此内容的官方文档。他们说: MAC地址是使用分配给容器
问题内容: 我想为容器分配一个端口,以便在每次重新启动容器后都获得相同的端口。 示例:我有一个容器,其中有一个Apache。Apache在容器内的端口80上运行。现在,在启动容器后,docker将一个主机端口分配给该容器端口,例如:49154->80。但是该主机端口在重新启动后会更改,具体取决于正在运行的容器的数量。我试图在容器的config.json文件中指定端口,但该端口被覆盖。 是否可以手动
问题内容: 我想在不同主机上的某些Docker容器中运行任务。而且我编写了一个管理器应用程序来管理容器(启动任务,停止任务,获取状态等)。容器启动后,它将向管理器发送一个http请求及其地址和端口,因此管理器将知道如何管理该容器。 由于同一主机上可能运行着多个容器,因此它们将被映射到不同的端口。要在我的经理上注册一个容器,我必须知道每个容器映射到哪个端口。 如何 在 Docker容器中获取映射的端