这几天在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:在 ExposedPorts
和 Ports
字段同步添加端口信息
位置1:
"ExposedPorts":{"22/tcp":{},"8000/tcp":{},"8080/tcp":{}}
位置2:
"Ports":{"22/tcp":[{"HostIp":"0.0.0.0","HostPort":"22"}],"8000/tcp":[{"HostIp":"0.0.0.0","HostPort":"8000"}],"8080/tcp":[{"HostIp":"0.0.0.0","HostPort":"8080"}]}
hostconfig.json:在 PortBindings
字段新增端口映射(例如新增 8080:80):
"PortBindings": {"22/tcp": [{"HostIp":"", "HostPort":"22"}]}
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,然后点击:INSPECT: