首页 文章

Docker镜像存储在主机上的哪个位置?

提问于
浏览
599

我设法找到目录 /var/lib/docker/containers 下的容器,但我找不到图像 .

/var/lib/docker 下的目录和文件是什么?

19 回答

  • 45

    图像存储在 /var/lib/docker/graph/<id>/layer 中 .

    请注意,图像只是父图像的差异 . 父ID与图像的元数据 /var/lib/docker/graph/<id>/json 一起存储 .

    当你 docker run 一个图像 . AUFS将'merge'所有层分成一个可用的文件系统 .

  • 6

    在最新发布的使用Hyper-V的“Docker for Windows”中,数据位于Docker虚拟硬盘中:

    C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
    

    您还可以打开“Hyper-V Manager”以访问Docker / MobyLinuxVM .

  • 473

    正如回答here,如果你在Mac上,它位于

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

    在Mac OS X或Windows的特殊情况下,使用boot2docker,Docker镜像存储在由boot2docker管理的VirtualBox VM中 .

    此VM将存储在VirtualBox映像的正常位置:

    OS X: ~/VirtualBox VMs/boot2docker-vm

    Windows: %USERPROFILE%/VirtualBox VMs/boot2docker-vm

    您可以通过运行来重置它(警告:这将破坏您到目前为止构建和下载的所有图像):

    boot2docker down
    boot2docker destroy
    boot2docker init
    boot2docker up
    

    如果你在没有有用的-rm选项的情况下构建/调试构建时保留了大量的中间图像,这个特别有用,我在这里引用它们作为参考:使用:

    docker build -t webapp --rm=true --force-rm=true .
    

    代替:

    docker build -t webapp .
    
  • 68

    使用Docker for Mac Application时,似乎容器存储在位于以下位置的VM中:

    ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
    
  • 20

    我只能为Ubuntu用户回答这个问题:

    运行命令 docker info 时可以找到docker的根目录

    Docker目录将在此行中给出:“_ Docker Root Dir: /var/lib/docker

    关于docker镜像,它们存储在docker目录中: /var/lib/docker/aufs/diff/

    记住这些东西在所有版本的docker中都不相同 . 目前,我使用的是1.12.3 .

  • 246

    在Fedora上,Docker使用LVM进行存储(如果可用) . 在我的系统 docker info 上显示:

    Storage Driver: devicemapper
     Pool Name: vg01-docker--pool
     Pool Blocksize: 524.3 kB
     Base Device Size: 10.74 GB
     Backing Filesystem: xfs
     Data file:
     Metadata file:
     Data Space Used: 9.622 GB
     ...
    

    在这种情况下,要增加存储空间,您必须使用LVM命令行工具或兼容的分区管理器(如blivet) .

  • 3

    如果您使用Docker for MAC(不是 boot2docker ),那么该位置是 /Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/

  • 20

    检查 /var/lib 中的docker文件夹

    图像存储在以下位置:

    /var/lib/docker/image/overlay2/imagedb/content
    
  • 2

    对于使用Docker工具箱(使用docker-machine)的人来说,Mac OS X上有关boot2docker的答案无效 . docker-machine VM名为"default",它存在于 /Users/<username>/.docker/machine/machines/default/ 目录中 .

  • 0

    关于Debian Unstable / Sid,

    docker info 查找系统范围的信息 .

    图像存储在 /var/lib/docker/image/overlay2/imagedb/content

    容器存放在 /var/lib/docker/containers

    docker version 18.06.0-ce ,API版本 1.38

  • 5

    /var/lib/docker 目录的内容取决于driver Docker is using for storage .

    默认情况下,这将是 aufs 但可以回退到 overlayoverlay2btrfsdevicemapperzfs ,具体取决于您的内核支持 . 在大多数地方,这将是 aufs 但是RedHats went with devicemapper .

    您可以使用-s or --storage-driver=选项手动将存储驱动程序设置为Docker daemon .

    • /var/lib/docker/{driver-name} 将包含图像内容的驱动程序特定存储 .

    • /var/lib/docker/graph/<id> 现在仅包含有关图像的元数据,在 jsonlayersize 文件中 .

    aufs 的情况下:

    • /var/lib/docker/aufs/diff/<id> 具有图像的文件内容 .

    • /var/lib/docker/repositories-aufs 是包含本 Map 像信息的JSON文件 . 可以使用命令 docker images 查看 .

    devicemapper 的情况下:

    • /var/lib/docker/devicemapper/devicemapper/data 存储图像

    • /var/lib/docker/devicemapper/devicemapper/metadata 元数据

    • 注意这些文件是精简配置的"sparse"文件,所以没有看起来那么大 .

  • 3

    在Ubuntu上,您可以“播放”运行的图像

    sudo baobab /var/lib/docker
    

    实际上,图像存储在 /var/lib/docker/aufs/diff

    screenshot showing disk analyzer tool baobab running on /var/lib/docker

  • 0

    扩展Tristan的答案,在使用Hyper-V的Windows中,您可以使用matthuisman中的steps来移动图像:

    在Windows 10中,停止泊坞窗等在任务栏搜索框中键入“Hyper-V Manager”并运行它 . 在左侧窗格中选择您的PC(我的名称为DESKTOP-CBP **)右键单击正确的虚拟机(我的名称为MobyLinuxVM)选择“关闭”(如果它正在运行)再次右键单击它并选择“移动“按照提示操作

  • 55

    Docker for Windows (本机Windows)中,默认容器存储位于:

    > docker info
       ...
       Docker Root Dir: C:\ProgramData\Docker
       ...
    
  • 79

    在Docker for Windows中,日志位于: %USERPROFILE%\AppData\Local\Docker

  • 3

    如果您记住Docker仍在VM中运行,则系统路径相对于VM而不是Mac Osx系统 . 因为它说所有都包含在VM文件中:

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

    尝试使用此卷选项运行Alpine映像,并使用ls命令列出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文件夹

  • 35

    实际上,Docker镜像存储在两个文件中,如下面的命令所示

    $ docker info
    

    数据文件:/ var / lib / docker / devicemapper / devicemapper / data元数据文件:/ var / lib / docker / devicemapper / devicemapper / metadata

  • 117

    我在Mac OSX上使用boot2docker for Docker,因此图像存储在 /Users/<USERNAME>/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk 中 .

相关问题