【问题标题】:Location of docker images downloaded by Docker (1.9.1) on Mac OS XDocker (1.9.1) 在 Mac OS X 上下载的 docker 镜像的位置
【发布时间】:2015-09-16 09:58:56
【问题描述】:

从 Mac OSX 中的 docker hub 下载 docker 映像后,它们位于何处。例如,如果我运行如下命令:

docker run hello-world

图像已下载并运行容器,但该图像在我的系统上的什么位置?

注意:Where are Docker images stored on the host machine?这个问题主要有linux机器相关的答案。 Mac OS X 的答案是考虑将 boot2docker 与 docker 安装一起使用,但对我来说并非如此。

【问题讨论】:

  • 不,不是。该问题指定了 linux 机器中的位置。与 Mac OS X 相关的答案是考虑在安装 docker 的同时使用 boot2docker。
  • 那你是如何在 Mac 上使用 Docker 的呢?你要么必须使用 boot2docker 要么 docker-machine...
  • 我正在使用 Mac OS X 的 docker 工具箱,如果我没记错的话,它有 docker-machine
  • 我猜链接问题的答案适用。 docker-machine 正在使用一个包含所有图像的 VM(默认称为 dev)。在内部,docker-machine 仍在使用 boot2docker 虚拟机,至少目前...
  • 我的VirtualBox VMs 文件夹中没有任何内容。但是,我认为这个虚拟机现在位于/Users/<username>/.docker/machine/machines/default/ 目录中。我的印象是每个容器可能存在单独的文件。

标签: macos docker


【解决方案1】:

如果你使用的是 Docker for Mac,那么位置又是不同的,即:

/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2

【讨论】:

  • 有没有办法像在磁盘上直接查看containers 的内容一样查看Docker.qcow2 的内容?
  • 你必须列出虚拟机中的文件夹,试试这个命令: docker run --rm -it -v /:/vm-root alpine:edge ls -l /vm-root/var/ lib/docker
  • 您也可以使用屏幕:screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty。见gist.github.com/BretFisher/5e1a0c7bcca4c735e716abf62afad389
  • 在我的机器上运行 cmd Darwin MyName 20.2.0 Darwin Kernel Version 20.2.0: Wed Dec 2 20:39:59 PST 2020; root:xnu-7195.60.75~1/RELEASE_X86_64 x86_64 并非如此。关闭但没有雪茄:-)
【解决方案2】:

磁盘映像位置也可以通过从 Docker 工具栏图标中选择 Preferences->Advanced 菜单(适用于 Docker-CE v17)来查看(如 docs 中所述): p>

更新:正如@udondan Docker 所提到的,现在在首选项中有一个单独的“磁盘”选项卡,其中显示了磁盘映像的位置:

【讨论】:

  • 一张证明胜过千言万语!谢谢!
  • 它现在位于自己的标签“磁盘”中。
  • 如果我有多个图像,如何从 qcow2 文件中提取图像?
【解决方案3】:

对于使用 Docker 工具箱(使用 docker-machine)的人,有关 Mac OS X 上的 boot2docker 的答案无效。 docker-machine VM 被称为“默认”,它存在于/Users/<username>/.docker/machine/machines/default/ 目录中。

注意:我还为这个问题添加了这个答案:Where are Docker images stored on the host machine?,但我也在这里回答,以便专门寻找 Mac OS X 和新版本 Docker 的人更容易找到答案。

【讨论】:

  • 使用所有默认设置,我刚刚在 OS X El Capitan (10.11.3) 上安装了 Docker Toolbox 1.10.2,发现 docker-machine 位于稍微不同的位置:/Users/MyUserName/.docker/machine/machines/default/跨度>
  • 感谢您在此处添加此内容。迁移到 Docker for Mac 后,Docker Toolbox 从未清理过旧数据,因此 34G 映像仍在该文件夹中。
【解决方案4】:

Docker 映像存储在带有 Docker Desktop 的 Mac 上的不同位置,不同于它们在其他 Linux 系统上的存储位置。

从 Docker 文档中摘录(2020 年 3 月 25 日从 https://docs.docker.com/docker-for-mac/space/ 检索)

Docker Desktop 将 Linux 容器和映像存储在一个大型的 Mac 文件系统中的“磁盘映像”文件。这与 Docker 不同 在 Linux 上,通常将容器和图像存储在 /var/lib/docker 目录。

在装有 MacOS 10.14.6 Mojave 的 Mac 上,运行 Docker 版本 19.03.8,可以在以下位置找到单个大文件:

~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

【讨论】:

    【解决方案5】:

    详细说明如何打开这些文件夹,以防你现在得到目录,因为它是安装在虚拟主机上而不是你的 Mac 常规卷

    screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty 
    
    ls -ltrh /var/lib/docker/volumes
    

    here的回答

    如果你想从你的 mac 控制音量,你可以在创建容器时映射它

    docker run -it --name voltest2 -v /path/to_mac/directory/MyHostDir:/mydata centos:latest /bin/bash
    

    这会将容器上的目录 mydata 映射到 mac 上的目录 /path/to_mac/directory/MyHostDir

    【讨论】:

      【解决方案6】:

      在我的情况下(小牛/docker brew安装/图像名称:默认)位于

      /Users/<Username>/.docker/machine/machines/.
      

      (你必须使用终端而不是查找器才能看到它。)

         ls -lah /Users/Mitsos/.docker/machine/machines/
          total 0
          drwx------   3 Mitsos  staff   102B Dec  8 19:03 .
          drwxr-xr-x   5 Mitsos  staff   170B Sep 22 13:52 ..
          drwx------  13 Mitsos  staff   442B Dec  8 19:04 default
      

      【讨论】:

        【解决方案7】:

        就我而言,我想找到 docker 图像并将它们复制到另一个位置。

        使用docker save 将一个或多个图像保存到 tar 存档(默认流式传输到 STDOUT)

        链接:https://docs.docker.com/engine/reference/commandline/save/

        【讨论】:

          【解决方案8】:

          在装有 MacOS 10.15.4 Catalina 的 Mac 上,运行 Docker 19.03.8 / Docker Desktop 2.3.0.2(45183) Docker.raw 位于此处:

          ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw 
          

          【讨论】:

            【解决方案9】:

            此答案与 MAC 的“boot2Docker”版本无关。这里我有版本 17.12.0-ce-mac55,你必须记住 Docker 仍然在 VM 中运行,系统路径是相对于 VM 而不是来自 Mac Osx 系统。 正如它所说,所有内容都包含在 VM 文件中:

            /Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2

            尝试使用此卷选项和 ls 命令运行 Alpine 映像,您可以列出 VM 主机:

            docker run --rm -it -v /:/vm-root alpine:edge ls -l /vm-root

            在此之后尝试:

            docker run --rm -it -v /:/vm-root alpine:edge ls -l /vm-root/var/lib/docker

            现在,您可以从 WM 主机列出 docker 文件夹

            【讨论】:

              【解决方案10】:

              在 Docker Desktop 版本 2.2.0.4 中,查看下面的屏幕截图。

              【讨论】:

                【解决方案11】:

                有一些关于这个here 的信息。您可以通过运行来检查位置

                docker info| grep "Docker Root Dir"
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-09-28
                  • 1970-01-01
                  • 2016-11-26
                  • 1970-01-01
                  • 2017-04-11
                  • 1970-01-01
                  相关资源
                  最近更新 更多