image - 在 Docker 镜像中搜索特定文件

标签 image docker tar

Docker 的新手。我的问题是,是否有一种方法可以搜索 Docker 镜像以查看是否存在任何 Jar 文件。

如果我理解正确的话,Docker 镜像是分层构建的,每一层不一定只属于该镜像。我最初的方法是“保存图像 > image.tar”以将所有层放在一起,然后递归地尝试在生成的 tar 中搜索模式“*.jar”。使用标准的 tar,例如,如果我“less filename.tar”,我可以直接看到 tar 的所有子目录。对于已压缩的图像,情况似乎并非如此。

有没有办法做到这一点,或者我是否从根本上误解了图像的构建方式以及压缩后会发生什么?

编辑:我实际上想专门针对图像执行此操作,而不是启动图像的 docker 容器然后搜索它。这可能吗?

编辑:好的,我会尽力使它更清楚。我尝试采用这种方法:

1) 从 docker 镜像创建一个压缩包:docker save image > image.jar 2) 然后我尝试使用这个简单的脚本在 tar 中搜索 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) 这适用于标准压缩包但不适用于 docker 压缩包

同样,我对 docker 完全陌生,我只想知道是否有另一种方法可以做到这一点。

最佳答案

执行以下操作

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

关于image - 在 Docker 镜像中搜索特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41038933/

相关文章:

html - 如何将动态 div 中的图像 float 到 div 的右下角?

python - 从图像中去除虚假文本区域

docker - 入口路由不适用于使用Helm部署的服务

docker - Docker持久数据链接

linux - 如何比较两个压缩包的内容

c++ - 使用 libtiff 库读写 32 位 tif 图像。 (c++)

image - 如何将图像转换为字节并在 flutter 中再次将其转换为图像?

linux - 从压缩目标文件的存档文件列表中查明存档文件

postgresql - docker部署的postgresql镜像运行了一段时间后无法对spring应用程序进行身份验证

linux - Jenkins 脚本 tar : write error