为特定文件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工人是全新的,我只是想知道是否有另一种方式来做这件事。
请执行下列操作
- 运行图像作为
docker run -it yourimage /bin/bash
- 现在您处于交互模式。
- 然后使用
find / -name *.jar
(如果find命令不可用安装它)
docker客户端有一个“导出”选项。 从环境configuration为使用docker客户端运行的shell
docker export <your image> | tar tf - | grep etc/issue
这产生以下结果:
etc/issue