如何在 Windows 10 docker 桌面中访问 /var/lib/docker?

a3.*_*ity 12 windows ssh putty docker docker-desktop

  1. 为 Windows 10 安装了 docker 桌面
  2. 使用 powershell 运行 docker 容器 ( ubuntu )
  3. 现在,我想浏览到 /var/lib/docker --> 想浏览到 overlay2 以检查图层.. /diff 文件夹等。
  4. 如果我访问 /var/lib/docker 文件夹 - powershell 会抱怨此文件夹不存在。

其他信息:我已经检查了为 docker 桌面映射的磁盘映像位置。它是一个 vhdx 文件。我无法使用 Oracle virtual box 打开它 - 它说它不是受支持的版本文件。我尝试在 Hyper V 管理器中打开,VM 被列出:DockerDesktopVM。

  • 但我的目标是执行 SSH 并浏览 /var/lib/docker 文件夹..

在此处输入图片说明

Rez*_*zga 10

如docker 论坛的此页面所述,您可以使用 shell 运行普通的debian docker 映像,并将其命名空间更改为docker host

您需要运行的终端命令是:

>> docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -i sh
Run Code Online (Sandbox Code Playgroud)

据我了解,在将 debian 映像作为终端( -it选项)运行后,您需要使用指定参数调用命令nsenter将命名空间更改为主机。之后,您的容器将成为Docker 主机,您可以查看它的所有文件。

执行此命令后,您只需调用以下命令即可访问 docker 镜像:

>> cd ls /var/lib/docker/
Run Code Online (Sandbox Code Playgroud)


Xia*_* Li 8

(这是针对 WSL2 的情况。这是对类似问题的回答)

Docker 镜像由 Docker 自己的 VM 管理。“docker info”给出的路径 /var/lib/docker 是相对于 docker 的主机文件系统,而不是你容器的文件系统。他们的挂载点是不同的。您可以通过以下任一方式查看 docker 的主机文件系统:

  1. 您可以将主机文件系统挂载到容器目录。如,

    docker run -v /:/data -it ubuntu /bin/bash

    此命令在 Ubuntu docker 镜像中运行一个 shell,将 docker 的文件系统挂载到 /data 目录。在那里你可以在 /data 下找到一个完整的文件系统,包括 ./var/lib/docker。如果需要,您可以在 shell 提示中“chroot /data”以获得更好的查看效果。

  2. 在 WSL2 中为您的发行版启用 docker 后,您始终可以在您的发行版 /mnt 目录中检查您的容器。Docker 已经为你安装了一切。

    /mnt/wsl/docker-desktop-data/data/docker
  3. 如果您足够老练,您可能会在您的 Windows 目录中找到所有数据的虚拟磁盘的实际位置。

    C:\Users\your_name\AppData\Local\Docker\wsl\data\

    或者可能只是为了好玩:

    \\wsl$\Ubuntu\mnt\wsl\docker-desktop-data\data\docker

    不幸的是,我还没有尝试深入研究它们。


小智 5

在 Windows 文件资源管理器的左侧窗格中,您可以找到所有计算机驱动器。如果您已经安装了 WSL(当您设置 Docker 时),您将看到这个 Linux pinguin 图标。

选择docker-desktop-data目录及其内部的数据目录。在数据目录中,您将找到docker目录和命令生成的卷docker run ... -v

快捷方式是:cd \\wsl.localhost\docker-desktop-data\data