Searching a Docker Image for a particular file
新码头工人总数。我的问题是,是否有一种方法可以搜索Docker映像以查看是否存在任何JAR文件。
如果我理解正确的话,Docker图像是在层中构建的,并且每个层不一定单独属于该图像。我最初的方法是"save image>image.tar",将所有层放在一起,然后递归地尝试搜索结果tar中的模式"*.jar"。例如,如果使用标准tar,我可以在tar的所有子目录中看到"less filename.tar"。这似乎不是一个已被涂上焦油的图像的情况。
有没有一种方法可以做到这一点,或者我是否从根本上误解了一个图像是如何构建的,当它被涂上焦油时会发生什么?
编辑:我实际上想专门针对图像执行此操作,而不是启动图像的Docker容器,然后搜索它。这是可能的吗?
编辑:好的,我会尽量让这更清楚。我尝试过采用这种方法:
1)从docker image创建tarball:docker save image>image.jar2)然后我尝试用这个简单的脚本在tar中搜索jar文件:
1 2 3 4 | #Will list and extract all jars from a tar file arc=$1.tar; file='*.jar'; tar tvf $arc | grep -E"$file" && tar xvf $arc"$file" |
3)这将适用于标准tarball,但不适用于docker tarball。
再一次,我对Docker完全陌生,我只是想知道是否还有其他方法可以做到这一点。
执行以下操作
Docker客户机有一个"导出"选项。从配置了环境以使用Docker客户机运行的shell
1 | docker export <your image> | tar tf - | grep etc/issue |
其结果如下:
1 | etc/issue |