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

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


当前回答

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

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

其他回答

如果你记住Docker仍然在虚拟机中运行,系统路径是相对于虚拟机的,而不是来自Mac Osx系统。 正如它所说的,所有内容都包含在VM文件中:

/ \用户MyUserName / Library / Containers / com .道克道克/数据/ com .道克。司机qcow2 amd64-linux -道克。

尝试使用此volume选项和ls命令运行Alpine image,您可以列出虚拟机主机:

Docker运行——rm -it -v /:/vm-root alpine:edge ls -l /vm-root

然后试试:

Docker运行——rm -it -v /:/vm-root alpine:edge ls -l / vm-root / var / lib /码头工人

现在,您可以列出来自VM主机的docker文件夹

使用docker info命令显示系统范围的信息,位置可能不同。

根据使用的存储驱动程序,还可以显示其他信息,如池名称、数据文件、元数据文件、已使用的数据空间、总数据空间、已使用的元数据空间和总元数据空间。 数据文件是存储图像的地方,元数据文件是存储关于这些图像的元数据的地方。第一次运行时,Docker从挂载/var/lib/docker的卷的可用空间中分配一定数量的数据空间和元数据空间。

下面是Ubuntu的例子(检查根目录):

$ docker info
...
Server Version: 18.06.1-ce
Storage Driver: aufs
 Root Dir: /var/snap/docker/common/var-lib-docker/aufs
...
Docker Root Dir: /var/snap/docker/common/var-lib-docker
...

下面是Travis CI的示例(参见Docker根目录):

$ docker info
Server Version: 17.09.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
...
Docker Root Dir: /var/lib/docker
...

您可以使用——format参数将信息提取到单个文件中,例如。

$ docker info --format '{{.DriverStatus}}'
[[Root Dir /var/snap/docker/common/var-lib-docker/aufs] [Backing Filesystem extfs] [Dirs 265] [Dirperm1 Supported true]]

or:

$ docker info --format '{{json .DriverStatus}}'
[["Root Dir","/var/snap/docker/common/var-lib-docker/aufs"],["Backing Filesystem","extfs"],["Dirs","265"],["Dirperm1 Supported","true"]]

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

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

我在Mac OSX上使用Docker的boot2docker,因此图像存储在/Users/<USERNAME>/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk。

实际上,Docker映像存储在两个文件中,如下命令所示

$ docker info

数据文件:/var/lib/docker/devicemapper/devicemapper/ Data 元数据文件:/var/lib/docker/devicemapper/devicemapper/ Metadata