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

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


当前回答

使用docker inspect container_id 在MergedDir下找到文件夹

# example. 
"MergedDir": "/var/lib/docker/overlay2/f40cc2ea8912ec3b32deeef5a1542a132f6e918acb/merged 

其他回答

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

使用docker info命令可以找到docker的根目录

Docker目录将在这一行中给出:"Docker根目录:/var/lib/docker"

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

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

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

注意,图像只是与父图像不同。父ID存储在映像的元数据/var/lib/docker/graph/< ID >/json中。

当你docker运行一个映像。AUFS将“合并”所有层到一个可用的文件系统。

如果有人需要它来编写脚本,这里有一个简单的解决方案。

在POSIX shell中,启用了PCRE的grep,尝试:

DOCKER_ROOT_DIR="$(docker info 2>&1 | grep -oP '(?<=^Docker根目录:).*')"

PowerShell:

$DOCKER_ROOT_DIR="$(docker信息2>&1 | foreach {if($_ -match " docker根目录"){$_。TrimStart("Docker根目录:")}})"

注意,在Windows 10(截至10.0.18999.1)上,在默认配置下,它返回:

C:\ProgramData\Docker在“Windows容器”模式 /var/lib/docker,以“Linux容器”模式

就像这里回答的,如果你在Mac上,它位于

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

图像存储在/var/lib/docker中,然后在适用的存储驱动目录下。

使用的存储驱动可以通过执行docker info命令来确定。