其中是hostconfig,json(Docker桌面+ WSL2环境)

baubqpgj  于 2023-04-29  发布在  Docker
关注(0)|答案(3)|浏览(228)

据我所知,docker不支持任何在make container之后更改端口Map的命令。
但这个答案说,通过改变hostconfig。json文件,我可以更改端口Map。
How do I assign a port mapping to an existing Docker container?
我在windows + WSL 2中使用Docker桌面。所以hostconfig的路径。JSON与其他答案不同。
hostconfig在哪里。json?
在我的例子中,(\wsl$\docker-desktop-data\mnt\wsl\docker-desktop-data\data,/var/lib/docker(在wsl中))目录不存在。

moiiocjp

moiiocjp1#

可访问的地方

容器的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$
ldxq2e6h

ldxq2e6h2#

Docker Desktop (Windows 10)

你可以在这里找到它(更多信息请参阅下面的步骤):

cd /var/lib/docker/containers/container-id

更改容器 * 主机端口 * 步骤,不删除容器:

  • 停止运行容器
  • docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --privileged --rm -it -v /:/host alpine
  • chroot /host
  • cd /var/lib/docker/containers/container-id
  • cat hostconfig.json //您将看到当前使用的端口
  • echo ' 上面的json,修改了port*'〉hostconfig。json* //使用外部单引号保留json双引号
  • 重启docker-desktop
7rtdyuoh

7rtdyuoh3#

我知道这个问题已经回答了,但我的系统中的路径是不同的。如果其他人也有同样的问题,我不想把解决方案留给自己。
我的系统(Windows 11)上的Docker容器的路径是:
\wsl.localhost\docker-desktop-data\data\docker\containers
它只是略有不同,但直到几分钟前,我怀疑文件hostconfig。JSON在我的系统上是可以访问的,因为你在互联网上找到的众多路径在我的系统上不存在。

相关问题