在Docker容器已经创建后,需要添加新的端口映射,即对已经存在的Docker容器添加新的端口映射,可以通过以下步骤来添加,即通过修改配置文件的方法。

1、Windows 10 下 Dockers容器的配置文件存在的路径为:

笔者本文是2022.09 最新安装的Docker的配置文件的路径

\\wsl$\docker-desktop-data\data\docker\containers

将以上路径直接复制到Windows 10 的资源管理器,如果不存在以上路径,则 仅复制 \\wsl$\ 到资源管理器里看看,如果正确安装了Docker Desktop 应该可以看到 docker-desktop-data 与 docker-desktop,如下图所示。

 复制 \\wsl$\docker-desktop-data\data\docker\containers 到资源管理器地址栏后如下图所示:

 2、修改配置文件

如上图,类似 1df287bf29dbfd53666535adf9ddd922001b4d8aea4d5e353701e5ce7102ab8c 的目录为Docker 容器的ID (container id),点击一个目录进入,则如图所示:

打开后修改其中的 config.v2.json 和 hostconfig.json 。

config.v2.json有两处需要添加,只修改一处,是不行的:
位置1:

"ExposedPorts":{"8081/tcp":{},"8084/tcp":{},"8085/tcp":{},"8090/udp":{}}

位置2:

"Ports":{"8081/tcp":[{"HostIp":"0.0.0.0","HostPort":"8089"}],"8084/tcp":[{"HostIp":"0.0.0.0","HostPort":"1939"}],"8085/tcp":[{"HostIp":"0.0.0.0","HostPort":"1989"}],"8090/udp":[{"HostIp":"0.0.0.0","HostPort":"8090"}],"8090/tcp":[{"HostIp":"0.0.0.0","HostPort":"8082"}]}

hostconfig.json 有一处:

"PortBindings":{"8081/tcp":[{"HostIp":"","HostPort":"8089"}],"8084/tcp":[{"HostIp":"","HostPort":"1939"}],"8085/tcp":[{"HostIp":"","HostPort":"1989"}],"8090/udp":[{"HostIp":"","HostPort":"8090"}],"8090/tcp":[{"HostIp":"0.0.0.0","HostPort":"8082"}]}

3、重启Docker服务:

重启整个Docker服务,不是只去Docker Desktop重启 Container ,如果仅仅重启了 Docker Container ,已经修改的配置会被还原,在系统右下角,重启整个 Docker 服务,然后再重启 Container 即可正常使用。

 点击容器名称

 点击 Imspect 即可查看到映射的端口列表

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐