繁体   English   中英

如何访问windows 10 docker桌面的/var/lib/docker?

[英]How to access /var/lib/docker in windows 10 docker desktop?

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

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

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

(这是针对 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

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

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

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

>> docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -i sh

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

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

>> cd ls /var/lib/docker/

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM