我设法在/var/lib/docker/containers目录下找到了容器,但我找不到图像。
/var/lib/docker下的目录和文件是什么?
我设法在/var/lib/docker/containers目录下找到了容器,但我找不到图像。
/var/lib/docker下的目录和文件是什么?
当前回答
在Fedora上,如果可用的话,Docker使用LVM作为存储。在我的系统上,docker信息显示:
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)。
其他回答
图像存储在/var/lib/docker/graph/<id>/layer。
注意,图像只是与父图像不同。父ID存储在映像的元数据/var/lib/docker/graph/< ID >/json中。
当你docker运行一个映像。AUFS将“合并”所有层到一个可用的文件系统。
这是过去的做法,现在已经改变了。从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 .
如果有人需要它来编写脚本,这里有一个简单的解决方案。
在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容器”模式
环境:Windows 10 Pro, docker desktop 2.0.3.0 edge
右键单击系统托盘中的docker图标,选择设置-高级:
磁盘映像位置(可通过浏览器编辑):
C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\DockerDesktop.vhdx
(它在那里-文档目录是隐藏的)
如果你在MAC上使用Docker(不是boot2docker),那么位置是/Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/