我设法在/var/lib/docker/containers目录下找到了容器,但我找不到图像。
/var/lib/docker下的目录和文件是什么?
我设法在/var/lib/docker/containers目录下找到了容器,但我找不到图像。
/var/lib/docker下的目录和文件是什么?
当前回答
我只能对Ubuntu用户回答这个问题:
使用docker info命令可以找到docker的根目录
Docker目录将在这一行中给出:"Docker根目录:/var/lib/docker"
关于docker镜像,它们存储在docker目录中: /var/lib/docker/aufs/diff/
记住这些东西在docker的所有版本中都是不一样的。目前,我使用的是1.12.3。
其他回答
图像存储在/var/lib/docker中,然后在适用的存储驱动目录下。
使用的存储驱动可以通过执行docker info命令来确定。
在Ubuntu上,你可以“玩”运行图像
sudo baobab /var/lib/docker
实际上,图像存储在/var/lib/docker/aufs/diff中
在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)。
我在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
希望这也能帮助到其他人。
/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元数据 请注意,这些文件是精简的“稀疏”文件,因此并不像它们看起来那么大。