windows10下docker:给已存在的容器添加端口映射、目录映射的方法

这几天在win10下使用docker容器,记录下解决一些问题办法:

1. 容器配置文件位置:

首先得找到容器配置文件地址,找了很久才找到,全文搜索都找不到,心累:
容器的配置文件目录在

\\wsl$\docker-desktop-data\version-pack-data\community\docker\containers

中, 在PowerShell终端中依次输入:

cd \\wsl$\docker-desktop-data\version-pack-data\community\docker\containers
explorer.exe .    #唤起 Windows 资源管理器,注意后面的.号

打开对应发行版的 WSL 网络位置之后,文件夹的名字是相应的容器ID,

2、给已存在的容器添加端口映射的方法

打开后修改其中的 config.v2.json 和 hostconfig.json,用 Windows 的记事本都可以。

config.v2.json有两处需要添加,只添加一处,还是会恢复原样:
位置1:

"ExposedPorts":{"22/tcp":{},"8000/tcp":{},"8080/tcp":{}}

位置2:

"Ports":{"22/tcp":[{"HostIp":"0.0.0.0","HostPort":"1023"}],"8000/tcp":[{"HostIp":"0.0.0.0","HostPort":"8000"}],"8080/tcp":[{"HostIp":"0.0.0.0","HostPort":"808"}]}

3、给已存在的容器添加目录映射的方法

修改容器的“config.v2.json”配置文件
在“MountPoints”数组,增加映射:

"MountPoints":{"/root/code":{"Source":"/run/desktop/mnt/host/d/code","Destination":"/root/code","RW":true,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{"Type":"bind","Source":"/run/desktop/mnt/host/d/code","Target":"/root/code"},"SkipMountpointCreation":false}}

修改容器的“hostconfig.json”配置文件
在“Binds”数组,增加映射:

"Binds":["/run/desktop/mnt/host/d/code:/root/code"]

4.重启Docker服务:

要重启整个Docker服务,不是直接去Docker Desktop重启 Container (如果你不小心启动了 Container ,上面的配置会被还原,请你再改一次,然后这次就不要忘记 Restart Docker 服务了),在系统右下角,重启整个 Docker 服务,然后再重启 Container 即可正常使用

5.查看效果:

docker-Desktop中,点击对应的容器ID:
windows10下docker:给已存在的容器添加端口映射、目录映射的方法_第1张图片

点击:INSPECT:
windows10下docker:给已存在的容器添加端口映射、目录映射的方法_第2张图片

你可能感兴趣的:(linux,docker,容器,运维)