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

标签 docker

我已经下载了一个Docker容器,该容器使用几种不同的软件在输入文件上执行几种不同的操作,即对齐,变体调用等。如何确定Docker容器/图像的内容是什么?抱歉,如果这很琐碎,我是docker的新手。

最佳答案

有(至少)三种方式谈论您的问题:

  • 您可能会询问在容器中安装了哪些软件包;您可能会问:
  • 您可能会问那里有什么文件。
  • 您可能很好奇容器包含什么images and layers

  • 1.列出容器中安装的软件包
    获取已安装软件包列表的方式取决于分发。这里是三个最受欢迎的家庭:
  • 基于musl和BusyBox的轻量级Linux发行版
  • 基于Debian的(Debian,Ubuntu)
  • 基于rpm的
  • (RHEL,CentOS和Fedora)

  • Alpine 容器
    使用apk info -vv命令:
    docker exec -i <container_id_1>  apk info -vv | sort
    
    基于Debian和Ubuntu的容器
    使用dpkg -l命令:
    docker exec -i <container_id_1>  dpkg -l
    
    基于RHEL,CentOS和Fedora的容器
    使用rpm -qayum list installed命令:
    docker exec -i <container_id_1>  rpm -qa
    docker exec -i <container_id_1>  yum list installed
    
    2.探索容器的文件系统
    要查看目录结构,可以使用bashtree或专门为探索Docker镜像而开发的炫酷工具tree
    docker exec -i <container_id_1> tree /
    
    注意:并非所有图像都包含tree命令。
    docker exporttardocker export adoring_kowalevski > contents.tar然后,Tou可以使用您喜欢的存档器浏览contents.tar。 IE。对于tar:tar -tvf contents.tar3.专用工具(浏览图像和图层OverlayFS)
    瓦古德曼/潜水
    wagoodman/dive: A tool for exploring each layer in a docker image
    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: Terminal User Interface for docker enginedocker run -v /var/run/docker.sock:/run/docker.sock -ti -e TERM tomastomecek/sen

    it can interactively manage your containers and images:


    贾斯汀/多克维兹
    justone/dockviz: Visualizing Docker data$ dockviz containers -d -r | dot -Tpng -o containers.png

    Containers are visualized with labelled lines for links. Containers that aren't running are greyed out.

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

    关于docker - 如何列出Docker容器中包含的所有应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57803595/

    相关文章:

    docker - 自定义端口在Docker-compose中不起作用

    docker - Jupyter 密码和 Docker

    reactjs - Next js 应用程序(在 Docker 容器内运行)无法加载位于公共(public)目录中的静态文件图像

    docker - 使用 Docker 多阶段构建创建多个镜像

    Docker 上的 java.net.UnknownHostException

    docker - 如何修复 'container runtime is down,PLEG is not healthy'

    linux - 以读写权限挂载数据卷到docker

    docker - 如何在Windows的Docker上的Alpine中运行简单的#!/bin/sh脚本

    docker - 定义Docker命令别名

    windows - 无法在 Windows 7 上的 docker 中运行默认的 hello-world 程序