hostconfig.json 在哪里(Docker 桌面 + WSL2 环境)

Posted

技术标签:

【中文标题】hostconfig.json 在哪里(Docker 桌面 + WSL2 环境)【英文标题】:where is hostconfig.json (Docker desktop + WSL2 environment) 【发布时间】:2021-04-09 06:25:59 【问题描述】:

据我所知,docker 不支持任何在制作容器后更改端口映射的命令。 但是这个答案说通过更改hostconfig.json文件,我可以更改端口映射。

How do I assign a port mapping to an existing Docker container? 我在 windows + WSL2 中使用 docker 桌面。所以 hostconfig.json 的路径与其他答案不同。 hostconfig.json 在哪里? 在我的情况下, (\wsl$\docker-desktop-data\mnt\wsl\docker-desktop-data\data, /var/lib/docker(in wsl)) 目录不存在。

【问题讨论】:

删除和重新创建容器应该是非常常规的做法,这比尝试修改 Docker 内部结构更好。 @DavidMaze 那么你的意思是把容器制作成镜像并使用那个镜像,当我需要新端口时制作新容器?你能解释一下为什么它更好吗?修改docker内部配置可能有问题? 【参考方案1】:

可以访问的地方

容器的hostconfig.json 可以在 WSL2 中使用 Windows 资源管理器在隐藏的网络路径 \\wsl$\docker-desktop-data\version-pack-data\community\docker\containers\containerid\hostconfig.json 中找到

Windows Explorer Screenshot with hostconfig.json

它不是(但可能是预期的)

/mnt/wsl/docker-desktop-data/version-pack-data 的子目录没有暴露给 WSL(出于某种原因):

deno@DeonJ-T570:/mnt/wsl/docker-desktop-data/version-pack-data$ sudo ls -al
[sudo] password for deno: 
total 0
drwxr-xr-x 2 root root  40 May 25 12:09 .
drwxr-xr-x 6 root root 120 May 25 12:09 ..
deno@DeonJ-T570:/mnt/wsl/docker-desktop-data/version-pack-data$ 

【讨论】:

你说得对,所有文件都可以在目录下找到。但它总是重建,我的修改都丢失了。

以上是关于hostconfig.json 在哪里(Docker 桌面 + WSL2 环境)的主要内容,如果未能解决你的问题,请参考以下文章

docker修改容器的端口容器名映射地址......

修改docker的port端口映射

docke存储

Docke--基础篇

Docke容器介绍

Docke连载:第三章:Docker的使用