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

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


当前回答

这是过去的做法,现在已经改变了。从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 .

其他回答

扩展Tristan的答案,在Windows的Hyper-V中,你可以从matthuisman中通过以下步骤移动图像:

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

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

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

在Debian不稳定/Sid上,

Docker信息来查找系统范围的信息。

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

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

docker版本18.06.0-ce, API版本1.38

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

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

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

在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容器”模式