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

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


当前回答

/var/lib/docker目录的内容取决于Docker用于存储的驱动程序。

默认情况下,这将是aufs,但可以回落到overlay, overlay2, btrfs, devicemapper或zfs,这取决于你的内核支持。在大多数地方,这将是aufs,但红帽使用设备映射器。

您可以使用-s或——storage-driver=选项手动将存储驱动程序设置为Docker守护进程。

/var/lib/docker/{driver-name}将包含用于映像内容的驱动程序特定存储。 >现在只包含关于图像的元数据,在json和layersize文件中。

对于aufs:

/var/lib/docker/aufs/diff/<id>包含镜像的文件内容。 /var/lib/docker/repositories-aufs是一个包含本地映像信息的JSON文件。这可以通过命令docker图像来查看。

在设备映射器的情况下:

/var/lib/docker/devicemapper/devicemapper/data存放映像 /var/lib/docker/devicemapper/devicemapper/metadata元数据 请注意,这些文件是精简的“稀疏”文件,因此并不像它们看起来那么大。

其他回答

检查/var/lib目录下的docker文件夹

图像存储在以下位置:

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

这是过去的做法,现在已经改变了。从2019年开始,请忽略这个答案

在Mac OS X或Windows的特殊情况下,使用boot2docker,您的Docker映像存储在由boot2docker管理的VirtualBox虚拟机中。

该虚拟机将存储在VirtualBox镜像的正常位置:

OS X: ~/VirtualBox VMs/boot2docker-vm

窗口:%用户框%/虚拟盒子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 .

使用docker info命令显示系统范围的信息,位置可能不同。

根据使用的存储驱动程序,还可以显示其他信息,如池名称、数据文件、元数据文件、已使用的数据空间、总数据空间、已使用的元数据空间和总元数据空间。 数据文件是存储图像的地方,元数据文件是存储关于这些图像的元数据的地方。第一次运行时,Docker从挂载/var/lib/docker的卷的可用空间中分配一定数量的数据空间和元数据空间。

下面是Ubuntu的例子(检查根目录):

$ docker info
...
Server Version: 18.06.1-ce
Storage Driver: aufs
 Root Dir: /var/snap/docker/common/var-lib-docker/aufs
...
Docker Root Dir: /var/snap/docker/common/var-lib-docker
...

下面是Travis CI的示例(参见Docker根目录):

$ docker info
Server Version: 17.09.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
...
Docker Root Dir: /var/lib/docker
...

您可以使用——format参数将信息提取到单个文件中,例如。

$ docker info --format '{{.DriverStatus}}'
[[Root Dir /var/snap/docker/common/var-lib-docker/aufs] [Backing Filesystem extfs] [Dirs 265] [Dirperm1 Supported true]]

or:

$ docker info --format '{{json .DriverStatus}}'
[["Root Dir","/var/snap/docker/common/var-lib-docker/aufs"],["Backing Filesystem","extfs"],["Dirs","265"],["Dirperm1 Supported","true"]]

在最新发布的使用Hyper-V的“Docker for Windows”中,数据位于Docker虚拟硬盘:C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx

你也可以打开“Hyper-V管理器”来访问Docker / MobyLinuxVM。

当使用Docker for Mac应用程序时,容器似乎存储在位于以下位置的虚拟机中:

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

更新(mmorin提供):

截至2019年1月15日,似乎只有这个文件:

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

它包含了Docker磁盘以及其中的所有映像和容器。