优雅地给Docker容器添加新端口
一共分为三步,停止容器和docker服务,修改配置文件,重启服务和容器。
这里只讲如何修改配置文件。
如果你是Linux环境
容器配置文件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
找到PortBindings
字段,以下是一个端口的格式例子
1 | "PortBindings": { |
如果不起作用,建议同时修改下面提到的config.v2.json
。
如果你是windws+wsl2环境
那么你需要修改两个文件,hostconfig.json
和config.v2.json
,它们都位于/mnt/wsl/docker-desktop-data/data/docker/<containerID>
下。
hostconfig.json
文件修改和linux的一样。
config.v2.json
需要修改以下两个字段
1 | "ExposedPorts":{"8080/tcp":{},"8088/tcp":{}} |
参考资料
How do I assign a port mapping to an existing Docker container? - Stack Overflowhttps://stackoverflow.com/questions/19335444/how-do-i-assign-a-port-mapping-to-an-existing-docker-containerAdding new exposed ports to existing docker container (Windows/WSL 2) | by LifeOnKeyboardBlog | Mediumhttps://medium.com/@lifeonkeyboardblog/adding-new-exposed-ports-to-existing-docker-container-windows-wsl-2-3cfe58d551e