我做了一个docker拉,可以列出下载的图像。我想看看这张照片的内容。在网上查了一下,但没有直接的答案。


当前回答

如果你想检查图像内容而不运行它,你可以这样做:

$ sudo bash
...
$ cd /var/lib/docker  # default path in most installations
$ find . -iname a_file_inside_the_image.ext
... (will find the base path here)

这适用于当前默认的BTRFS存储驱动程序。

其他回答

使用Docker EE for Windows (17.66.2 - EE -6 on Hyper-V Server 2016),可以在主机操作系统的C:\ProgramData\ Docker \windowsfilter\路径下检查Windows容器的所有内容。

不需要特殊安装。

文件夹前缀可以通过docker ps -a输出的容器id找到。

也许这不是一个非常直接的方法,但这个方法对我来说很有效。 我有一个ECR Repo(亚马逊容器服务存储库),我想看看它的代码。

首先,我们需要将想要访问的repo保存为tar文件。在我的例子中,命令是这样的- docker save .dkr.ecr.us-east-1.amazonaws.com/<name_of_repo>:image-tag > saved-repo.tar 使用- tar -xvf saved-repo.tar命令解压文件。你可以看到很多文件夹和文件 现在尝试找到包含您正在寻找的代码的文件(如果您知道部分代码) 文件搜索命令- grep - irl "要搜索的字符串" ./

这样你就能拿到文件了。即使该文件也可能被tar,所以使用步骤2中提到的命令解tar它。

如果你不知道你要搜索的代码,你将需要浏览你在步骤2之后得到的所有文件,这可能有点累。

祝一切顺利!

如果你想检查图像内容而不运行它,你可以这样做:

$ sudo bash
...
$ cd /var/lib/docker  # default path in most installations
$ find . -iname a_file_inside_the_image.ext
... (will find the base path here)

这适用于当前默认的BTRFS存储驱动程序。

如果你想在不启动容器的情况下列出镜像中的文件:

docker create --name listfiles <image name>
docker export listfiles | tar -t
docker rm listfiles

要列出映像的详细内容,您必须运行docker命令——rm image/name ls -alR,其中——rm表示一旦从容器中退出就立即删除。