为特定文件searchDocker镜像

新的Docker的总数。 我的问题是,是否有一种方法来searchDocker镜像来查看是否存在任何Jar文件。

如果我理解正确的话,Docker镜像就是在图层中build立起来的,每一层都不一定属于那个镜像。 我最初的做法是“保存图像> image.tar”将所有图层放在一起,然后recursion地尝试search“* .jar”模式的结果焦油。 如果使用标准的tar,例如,我可以在tar的所有子目录中看到“less filename.tar”。 这似乎并不是这样一个形象已经tartarled。

有没有办法做到这一点,或者我从根本上误解了一幅图像是如何构build的,以及它在目标时发生了什么?

编辑:我其实是想特意做到这一点,而不是启动图像的docker容器,然后search。 这甚至有可能吗?

编辑:好吧,我会尽量让这个更清楚。 我试图采取这种做法:

1)从docker图像创build一个tarball:docker保存图像> image.jar 2)然后我试图用这个简单的脚本searchtar文件的jar文件:

#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工人是全新的,我只是想知道是否有另一种方式来做这件事。

请执行下列操作

  1. 运行图像作为docker run -it yourimage /bin/bash
  2. 现在您处于交互模式。
  3. 然后使用find / -name *.jar (如果find命令不可用安装它)

docker客户端有一个“导出”选项。 从环境configuration为使用docker客户端运行的shell

 docker export <your image> | tar tf - | grep etc/issue 

这产生以下结果:

 etc/issue