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

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


当前回答

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

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

其他回答

我在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

希望这也能帮助到其他人。

sudo docker info | grep -e "Root Dir"

如果你在MAC上使用Docker(不是boot2docker),那么位置是/Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/

/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/graph/<id>/layer。

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

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