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

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


当前回答

图像存储在/var/lib/docker/graph/<id>/layer。

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

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

其他回答

环境: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/

在Windows 2016中,DockerMsftProvider使用docker根目录下的文件夹“windowsfilter”

>docker info
...
Storage Driver: windowsfilter
...
Docker Root Dir: C:\ProgramData\docker
...

它使用docker root下的“tmp”文件夹下载文件,并将下载的文件解压缩到“windowsfilter”文件夹后删除文件。

当使用Docker for Mac应用程序时,容器似乎存储在位于以下位置的虚拟机中:

~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2

更新(mmorin提供):

截至2019年1月15日,似乎只有这个文件:

~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw

它包含了Docker磁盘以及其中的所有映像和容器。

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

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