windows环境下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:在 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:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值