如何列出 docker 容器中包含的所有应用程序?

2024-04-03

我已经下载了一个 docker 容器,它使用几种不同类型的软件对输入文件执行多种不同的操作,即对齐、变体调用等。如何找出 docker 容器/图像的内容是什么?抱歉,如果这是微不足道的,我对 docker 完全陌生。


有(至少)三种方式来解释你的问题:

  • 哪些包安装在容器内;
  • 什么文件在那里:探索容器的文件系统;
  • what 图像和图层 https://docs.docker.com/storage/storagedriver/#images-and-layers容器由什么组成?

1. List packages安装在容器中

获取已安装软件包列表的方式取决于发行版。最受欢迎的家庭有以下三个:

  • Alpine,基于 musl 和 BusyBox 的轻量级 Linux 发行版
  • 基于 Debian(Debian、Ubuntu)
  • 基于 rpm(RHEL、CentOS 和 Fedora)

基于 Alpine 的容器

Use apk info -vv命令:

docker exec -i <container_id_1>  apk info -vv | sort

基于 Debian 或 Ubuntu 的容器

Use dpkg -l命令:

docker exec -i <container_id_1>  dpkg -l

基于 RHEL、CentOS 和 Fedora 的容器

Use rpm -qa or yum list installed命令:

docker exec -i <container_id_1>  rpm -qa
docker exec -i <container_id_1>  yum list installed

2. 探索容器文件系统

要查看目录结构,您可以使用bash & tree或者专门为探索 docker 镜像而开发的酷工具

tree

docker exec -i <container_id_1> tree /

Note:并非所有图像都包含tree命令。

docker export with tar

docker export adoring_kowalevski > contents.tar然后,您可以探索contents.tar使用您首选的存档器。 IE。为了tar:

tar -tvf contents.tar

3.专用工具(探索图像和图层 OverlayFS)

瓦古德曼/潜水

wagoodman/dive:用于探索 docker 镜像中每一层的工具 https://github.com/wagoodman/dive

docker run --rm -it \ 
  -v /var/run/docker.sock:/var/run/docker.sock \
  wagoodman/dive:latest \
  <image_name|image_id>

A tool for exploring a docker image, layer contents, and discovering ways to shrink your Docker image size. Image

托马斯托梅切克/森

TomasTomecek/sen:docker 引擎的终端用户界面 https://github.com/TomasTomecek/sen

docker run -v /var/run/docker.sock:/run/docker.sock -ti -e TERM tomastomecek/sen

it can interactively manage your containers and images:

justone/dockviz

justone/dockviz:可视化 Docker 数据 https://github.com/justone/dockviz

$ dockviz containers -d -r | dot -Tpng -o containers.png

容器通过链接标记线进行可视化。未运行的容器呈灰色。

$ dockviz containers -d -r | dot -Tpng -o containers.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何列出 docker 容器中包含的所有应用程序? 的相关文章

随机推荐

  • 如何使 git diff --ignore-space-change 成为默认值

    我可能可以设置一个别名 但似乎我应该能够将其设置为配置文件中的一个选项 只是我无论如何都看不到这样做 我只想要 ignore space change当我做 diff 时 而不是当我做 apply 或其他任何事情时 我试图让差异更容易理解
  • cordova-ionic ngCordova ios 或 iPhone 文件读取错误代码 5 ENCODING_ERR

    我正在使用 cordova ionic 框架来构建应用程序 我是 iOS 或 iPhone 新手 根据我的要求 我必须读取应用程序中的文件 我正在 Android 应用程序中读取文件 但相同的代码显示错误 代码 5 我正在跟踪代码类型 在安
  • 使用复选框过滤 FullCalendar 事件(使用 JavaScript 的客户端)

    我有一个运行良好的 fullcalendar 脚本 它根据数据属性通过以下方式将 css 类添加到事件中eventRender 我现在需要使用复选框过滤这些特定属性 但我根本不知道应该如何实现这一点 我的脚本如下所示
  • 用于跟踪图像 url 的 HTTP 302、303 或 307

    我正在尝试跟踪我们发送的特定电子邮件是否被打开 因此在我发送的每封电子邮件上使用图像的哈希 URL 目前 当请求该 url 时 我会记录电子邮件已被查看的事实 基于 url 中的哈希值 并从 Web 应用程序服务器提供图像 对于每个人来说都
  • 为什么 yacc 无法解析语法规则的第二行,即使它正确解析了第一行?

    我想将行解析为 20191201 170003296 1 102290 1 102470 0 为此 我编写了以下基本 yacc lex 语法 词法分析器 语法上 include
  • 如何使用 onAuthStateChanged 将 Firebase 身份验证与 Redux Toolkit 结合使用?

    我正在尝试通过 Redux Toolkit 实现 Firebase 身份验证 但我认为由于缺乏知识我错过了一些东西 My monitorAuthChange回报undefined 我有两个单独的文件 第一个是 firebase 函数列表 第
  • 泛型和 Class.asSubclass

    我一直认为以下应该有效 我得到一个我知道是 a 的对象Class
  • Asp.net:替换 GenericPrincipal

    我想知道最好的方法是什么 用我自己的自定义 GenericPrincipal 替换 genericPrincipal 目前我有类似的东西 但我不确定它是否正确 protected void Application AuthenticateR
  • Oracle SQL Developer 初始化欢迎页面时出现问题

    我安装了 Oracle Sql Developer 但没有看到启动页面 遇到 JavaFx 错误 我怎么解决这个问题 手动破解 如果您不关心欢迎页面而只想消除错误 则可以阻止在启动时显示欢迎页面 查找包含启动时显示欢迎页面的设置的文件 No
  • 从包含合并单元格的表格中删除列

    我正在尝试从具有水平合并单元格的表中删除列 Selection MoveEnd Unit WdUnits wdCell Count 3 Selection Columns Delete 即使列被删除 合并的单元格也会在此过程中被删除 留下一
  • 我可以在不复制 C# 8 中的元素的情况下对结构数组进行 foreach 吗?

    随着新C 8 中的只读实例成员功能 https learn microsoft com en us dotnet csharp language reference proposals csharp 8 0 readonly instanc
  • 过滤出现在两个标记之间的文本

    Part 1 创建仅输出由两个预定义标记包围的文本的文本过滤器的最简单方法是什么 我不介意使用任何标准工具 sed awk python 例如 我希望只显示由 标记开始 和 标记结束 包围的文本 input Text 1 Mark Begi
  • 如何使用标头和数据创建对服务器的 javascript POST 请求

    我使用 JS 自动化框架来测试 iOS 应用程序 在测试过程中 我需要向服务器创建 POST 请求 向用户发送一些钱 然后验证更改是否反映在 UI 中 请求如下 wwww testserver com userAddMoney user i
  • 将 Laravel 请求中的数组值转换为整数

    我想要array diff Laravel 中的两个数组 第一个数组如下所示 array 4 0 gt 7248 1 gt 7249 2 gt 7250 3 gt 7251 第二个 array 4 0 gt 7248 1 gt 7249 2
  • 在 R 中裁剪光栅

    我正在绘制美国东北部的地图 地图背景需要是海拔图或年平均温度图 我有来自 Worldclim org 的两个栅格 它们为我提供了这些变量 但我需要将它们裁剪到我感兴趣的状态范围 有关如何执行此操作的任何建议 这是我到目前为止所拥有的 loa
  • MySQL:索引可变长度的json数组?

    我想做一个tags类型列json e g id tags 1 tag1 tag2 tag3 2 tag1 tag3 tag5 tag7 3 tag2 tag5 我想为每个索引tag在数组中 不知道数组的长度 可变长度 那么如果我查询包含的行
  • 将大量数据从 NIST 更改为 RIFF wav 文件

    所以 我正在编写一个语音识别程序 为此 我从 TIMIT 下载了 400MB 的数据 当我打算读取 wav 文件时 我尝试了两个库 如下所示 import scipy io wavfile as wavfile import wave fs
  • 向客户展示应用程序的测试版

    我可以向客户发送可以在模拟器中运行的 iOS 应用程序的测试版吗 我可以在 Mac 上仅安装模拟器 不带 Xcode 吗 实际上 我需要一种有效的方法来向他发送应用程序的测试版 而不必在每次更新时与他见面 另外 3 有没有办法安装我在 iO
  • 当指定 -g 时,gcc 会定义什么吗?

    很快 我想知道 gcc 或 g 我需要它C 但也对 c 感到好奇 定义了任何特殊符号 如果 g已启用 可以 如果是的话 是什么符号 在搜索过程中我发现 DEBUG是手动定义的 手动我的意思是 D DEBUG 并且是 Visual C 程序员
  • 如何列出 docker 容器中包含的所有应用程序?

    我已经下载了一个 docker 容器 它使用几种不同类型的软件对输入文件执行多种不同的操作 即对齐 变体调用等 如何找出 docker 容器 图像的内容是什么 抱歉 如果这是微不足道的 我对 docker 完全陌生 有 至少 三种方式来解释