这几天在win10下使用docker容器,记录下解决一些问题办法:
首先得找到容器配置文件地址,找了很久才找到,全文搜索都找不到,心累:
容器的配置文件目录在
\\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,
打开后修改其中的 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"}]}
修改容器的“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"]
要重启整个Docker服务,不是直接去Docker Desktop重启 Container (如果你不小心启动了 Container ,上面的配置会被还原,请你再改一次,然后这次就不要忘记 Restart Docker 服务了),在系统右下角,重启整个 Docker 服务,然后再重启 Container 即可正常使用