我找到了目录 /var/lib/docker/containers
下的容器,但是无法找到镜像。
在 /var/lib/docker
下有哪些目录和文件?
我找到了目录 /var/lib/docker/containers
下的容器,但是无法找到镜像。
在 /var/lib/docker
下有哪些目录和文件?
/var/lib/docker
目录的内容取决于Docker用于存储的驱动程序。默认情况下,这将是aufs,但可以根据您的内核支持回退到overlay
、overlay2
、btrfs
、devicemapper
或zfs
。在大多数情况下,这将是aufs
,但RedHats选择了devicemapper
。
您可以使用-s
或--storage-driver=
选项手动设置存储驱动程序,以便应用于Docker守护程序。
/var/lib/docker/{driver-name}
将包含图像内容的特定于驱动程序的存储。/var/lib/docker/graph/<id>
现在仅包含关于图像的元数据,以json
和layersize
文件形式存储。对于aufs
:
/var/lib/docker/aufs/diff/<id>
包含图像的文件内容。/var/lib/docker/repositories-aufs
是一个包含本地镜像信息的JSON文件。可以使用docker images
命令查看此文件。对于devicemapper
:
/var/lib/docker/devicemapper/devicemapper/data
存储镜像/var/lib/docker/devicemapper/devicemapper/metadata
存储元数据docker info
命令找到实际位置,特定于您的设置。请注意保持原意并使句子通俗易懂。 - Bruno BronoskyDocker for Mac
,其中有2个大小为1.5 GB的镜像,但/var/lib
目录中没有docker
文件夹。 - miguelmorin在使用 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磁盘和其中所有的镜像和容器。
ubuntu
,nginx
)还是所有容器?原始问题询问的是镜像,而不是容器。 - Siu Ching Pong -Asuka Kenji-Docker for Mac
,有两个大小为1.5 GB的镜像,而~/Library/Containers/Data/com.docker.docker/Data
目录下没有com.docker.driver.amd64-linux
目录,唯一的大文件位于vms/0/Docker.raw
,大小为3.6 GB。 - miguelmorindata
):〜/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
。 - Alex Martian实际上,Docker镜像是存储在两个文件中的,如下命令所示
$ docker info
/var/lib/docker/devicemapper/devicemapper/data
元数据文件: /var/lib/docker/devicemapper/devicemapper/metadata
docker info
非常有用,但输出Docker Root Dir: /var/lib/docker
并未指示镜像存储位置(请参见上面的针对Mac的答案)。 - Webel IT Australia - upvoterdocker info
中没有看到所述的属性。 - F.S.这是旧的做法,现在已经改变了。截至2019年,请忽略此答案。
在Mac OS X或Windows的特殊情况下,使用boot2docker时,您的Docker镜像存储在由boot2docker管理的VirtualBox VM中。
这个VM将存储在VirtualBox映像的正常位置:
OS X: ~/VirtualBox VMs/boot2docker-vm
Windows: %USERPROFILE%/VirtualBox VMs/boot2docker-vm
您可以通过运行以下命令来重置它(警告:这将销毁您到目前为止构建和下载的所有镜像):
boot2docker down
boot2docker destroy
boot2docker init
boot2docker up
如果您在构建/调试构建时保留了大量中间图像,而没有使用有用的--rm选项,那么这将特别有用。我在此引用它们供参考:
使用:
docker build -t webapp --rm=true --force-rm=true .
替代:
docker build -t webapp .
%USERPROFILE%\.docker\machine\machines
(请注意路径中的句点) - AnotherLongUsernameC:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
。 - aaronsteers在最新发布的“Docker for Windows”中,使用Hyper-V技术,数据存储在Docker虚拟硬盘中:
C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
您还可以打开“Hyper-V管理器”来访问Docker/MobyLinuxVM。
C:\ ProgramData \ docker \ windowsfilter
中。更多信息请参见:https://dev59.com/8F0a5IYBdhLWcg3wFlRH#39971954。 - Johnny OshikaC:\Users\UserName\AppData\Local\Docker\wsl\data\ext4.vhdx
,大小为1.6GB(和 \Docker\wsl\distro\ext4.vhdx
105MB)。不确定是否是镜像。(我没有使用Hyper-V,而是WSL 2。)(我尝试了许多其他答案,例如像 var/lib/docker
、overlay2
、DockerDesktop
这样的文件夹位置,但这些文件夹要么不存在,要么不包含图像文件,在我的Windows操作系统中。虽然 $ docker info
显示 Storage Driver: overlay2
;并且 $ docker inspect container_id
显示 "MergedDir": "/var/lib/docker/overlay2/4zxxxxxxpb/merged"
。但我不知道为什么。) - Nor.Z/var/lib/docker/graph/<id>/layer
中。/var/lib/docker/graph/<id>/json
中。docker run
一个图像时,AUFS会将所有层合并为一个可用的文件系统。sudo baobab /var/lib/docker
实际上,图像存储在/var/lib/docker/aufs/diff
中。
对于使用 Docker 工具箱(使用 docker-machine)的用户而言,关于在 Mac OS X 上使用 boot2docker 的答案已经不再适用。Docker-machine 虚拟机被称为 "default",它存在于 /Users/<username>/.docker/machine/machines/default/
目录中。
> docker info
...
Docker Root Dir: C:\ProgramData\Docker
...
docker build
命令,但是我没有看到我认为是镜像文件的文件。我看到一些文件夹和一些文本文件(例如 service.txt)。docker build
创建什么类型的文件以及使用什么文件扩展名? - user3731622docker info
吗? - Tormod Haugene/Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/
。jasper@~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux $ ls -lh | grep Docker -rw-r--r--@ 1 jasper staff 6.3G May 25 19:20 Docker.qcow2
我找到了镜像。但那不是容器。实际上在这个Data目录中并没有看到它们。 - rhand