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

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


当前回答

在Ubuntu上,你可以“玩”运行图像

sudo baobab /var/lib/docker

实际上,图像存储在/var/lib/docker/aufs/diff中

其他回答

在2021年的macOS上,唯一可能的解决方案是使用bash访问Docker VM,然后查看它的本地结构:

Docker运行-ti——privilege——pid=host debian nsenter -t 1 -m -u -n -i sh cd /var/lib/docker/

欢迎你!

在最新发布的使用Hyper-V的“Docker for Windows”中,数据位于Docker虚拟硬盘:C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx

你也可以打开“Hyper-V管理器”来访问Docker / MobyLinuxVM。

如果你记住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文件夹

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

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

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

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