使用kubectl,如何检索容器映像中安装的软件包列表?

时间:2020-03-29 12:54:25

标签: linux image docker kubernetes kubectl

有人将如何使用kubectl来检索有关容器映像中已安装软件包的信息?例如,如何找到已安装软件包的版本?还是列出系统上安装的所有软件包?

我正在搜索与docker inspect类似的命令。

3 个答案:

答案 0 :(得分:0)

这可以通过使用kubectl exec来实现。例如,这里我正在获取示例CentOS 7容器中运行的dnf的版本。

$> kubectl exec example-67575f5dfb-xw2qz -- dnf --version
4.2.7
  Installed: dnf-0:4.2.7-7.el8_1.noarch at Mon Jan 13 21:49:19 2020
  Built    : CentOS Buildsys <bugs@centos.org> at Thu Dec 19 15:44:23 2019

  Installed: rpm-0:4.14.2-25.el8.x86_64 at Mon Jan 13 21:49:16 2020
  Built    : CentOS Buildsys <bugs@centos.org> at Fri Nov  8 22:56:14 2019

这是另一个示例,展示了如何在图像上获取所有已安装的软件包:

$> kubectl exec example-67575f5dfb-xw2qz -- dnf list all
Last metadata expiration check: 0:10:30 ago on Mon Mar 30 03:13:10 2020.
Installed Packages
acl.x86_64                                           2.2.53-1.el8                                      @System
audit-libs.x86_64                                    3.0-0.10.20180831git0047a6c.el8                   @System
basesystem.noarch                                    11-5.el8                                          @System
>SNIP<

答案 1 :(得分:-1)

请仔细阅读kubectl文档。您应该能够与群集进行交互并能够收集所需的信息。

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

答案 2 :(得分:-1)

没有等效的方法。 Kubernetes与容器之间存在一定的臂长关系。大多数复杂的位都是CRI插件的委托,因此K8s本身完全不了解图像。