我设法在/var/lib/docker/containers目录下找到了容器,但我找不到图像。
/var/lib/docker下的目录和文件是什么?
我设法在/var/lib/docker/containers目录下找到了容器,但我找不到图像。
/var/lib/docker下的目录和文件是什么?
当前回答
在最新发布的使用Hyper-V的“Docker for Windows”中,数据位于Docker虚拟硬盘:C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
你也可以打开“Hyper-V管理器”来访问Docker / MobyLinuxVM。
其他回答
图像存储在/var/lib/docker/graph/<id>/layer。
注意,图像只是与父图像不同。父ID存储在映像的元数据/var/lib/docker/graph/< ID >/json中。
当你docker运行一个映像。AUFS将“合并”所有层到一个可用的文件系统。
我在macos上使用上述答案无法解决Docker 18.09版本的问题,并再次尝试。
对我来说唯一的解决方案就是使用docker-compose。yml配置:
version: '3.7'
...
services:
demo-service:
volumes:
- data-volume:/var/tmp/container-volume
volumes:
data-volume:
driver: local
driver_opts:
type: none
o: bind
device: /tmp/host-volume
在启动docker-compose后,我终于将macos中的/tmp/host-volume共享为容器中的可写卷:
> docker exec -it 1234 /bin/bash
bash-4.4$ df
Filesystem 1K-blocks Used Available Use% Mounted on
...
osxfs 488347692 464780044 21836472 96% /var/tmp/container-volume
希望这也能帮助到其他人。
环境:Windows 10 Pro, docker desktop 2.0.3.0 edge
右键单击系统托盘中的docker图标,选择设置-高级:
磁盘映像位置(可通过浏览器编辑):
C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\DockerDesktop.vhdx
(它在那里-文档目录是隐藏的)
如果有人需要它来编写脚本,这里有一个简单的解决方案。
在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容器”模式
在Ubuntu上,你可以“玩”运行图像
sudo baobab /var/lib/docker
实际上,图像存储在/var/lib/docker/aufs/diff中