在 Mac 上查找 docker 图像的位置是一件苦差事。通常在大多数系统上,您可以通过运行命令docker info来查看图像和容器的位置,但不,这在 mac 上不起作用。您会看到该命令将告诉您根目录位于/var/lib/docker,这在 mac 上是一个不存在的目录。

有两种主要方法可以访问此目录。首先尝试选项1,如果它不起作用,请尝试选项2

这里是docker目录的一点背景资料

在 Mac 上,我们的 docker 文件位于虚拟机内部,该虚拟机位于我们的用户库目录中:~/Library/Containers/com.docker.docker/

这个目录很容易从终端访问,但是如果您尝试通过 finder 到达那里,您可能会注意到 com.docker.docker 在该目录名称下没有显示.当您导航到~/Library/Containers时,您将看到文件夹名称 Docker 。注意,那是 com.docker.docker 目录

[docker目录](https://res.cloudinary.com/practicaldev/image/fetch/s--YRxiTc47--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/yhejyl52iwr07qxxjlxl.png)

现在要进入根目录/var/lib/docker,我们必须访问在我们的 mac 上使用的 docker 虚拟机。


选项 1

使用终端应用程序screen

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

进入全屏模式 退出全屏模式

应该看到一个屏幕,您可以在其中输入命令

cd /var/lib/docker

进入全屏模式 退出全屏模式


选项 2

现在,如果你不走运并且遇到 permission denied 错误,你将需要尝试通过 docker 镜像访问 docker 虚拟机:

[Alt](https://res.cloudinary.com/practicaldev/image/fetch/s--RNijdi1O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/zz7hlz5hpltlavsh6juc.png)

为了解决这个错误,我们将安装一个 debian docker 镜像,运行它,然后使用nsenter工具进入容器

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

进入全屏模式 退出全屏模式

这将打开 debian 映像并允许我们通过 sh shell 浏览 docker 文件

现在外壳可用了。让我们输入命令

cd /var/lib/docker

进入全屏模式 退出全屏模式

如果使用了默认存储驱动程序overlay2,那么您的 Docker 镜像将存储在目录/var/lib/docker/overlay2

[docker 文件](https://res.cloudinary.com/practicaldev/image/fetch/s--bAC9FWaF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/jid4hy8y4myujz0sp8ej.png)


要获得 docker run 标志的详细说明,请在终端中键入docker run --help命令。


来源

在 redhat linux 网站上了解有关nsenterlinux 工具的更多信息。

在 Docker for Mac 中获取路径和访问持久卷由 Tim Kamanin

[Github:docker 无法通过屏幕访问卷

码头工人](https://github.com/docker/for-mac/issues/4822)

Logo

CI/CD社区为您提供最前沿的新闻资讯和知识内容

更多推荐