Buscar

2.11. Inspección de imágenes locales

download PDF

Después de extraer una imagen a su sistema local y antes de ejecutarla, es una buena idea investigar esa imagen. Las razones para investigar una imagen antes de ejecutarla incluyen:

  • Entender lo que hace la imagen
  • Comprobar qué software hay dentro de la imagen

Procedimiento

El comando podman inspect muestra información básica sobre lo que hace una imagen. También tiene la opción de montar la imagen en su sistema anfitrión y utilizar las herramientas del anfitrión para investigar lo que hay en la imagen. Este es un ejemplo de cómo investigar lo que hace una imagen de contenedor antes de ejecutarla.

  1. Inspect an image: Ejecute podman inspect para ver qué comando se ejecuta cuando se ejecuta la imagen del contenedor, así como otra información. Aquí hay ejemplos de examen de las imágenes de contenedor ubi8/ubi y rhel8/rsyslog (con sólo fragmentos de información mostrados aquí):

    # podman pull registry.redhat.io/ubi8/ubi
    # podman inspect registry.redhat.io/ubi8/ubi | less
    ...
       "Cmd": [
           "/bin/bash"
       ],
       "Labels": {
           "License": "GPLv3",
           "architecture": "x86_64",
           "authoritative-source-url": "registry.redhat.io",
           "build-date": "2018-10-24T16:46:08.916139",
           "com.redhat.build-host": "cpt-0009.osbs.prod.upshift.rdu2.redhat.com",
           "com.redhat.component": "rhel-server-container",
           "description": "The Red Hat Enterprise Linux Base image is designed to be a fully supported...
    ...
    # podman pull registry.redhat.io/rhel8/rsyslog
    # podman inspect registry.redhat.io/rhel8/rsyslog
       "Cmd": [
         "/bin/rsyslog.sh"
       ],
       "Labels": {
         "License": "GPLv3",
         "architecture": "x86_64",
    ...
         "install": "podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=IMAGE -e NAME=NAME IMAGE /bin/install.sh",
    ...
         "run": "podman run -d --privileged --name NAME --net=host --pid=host -v /etc/pki/rsyslog:/etc/pki/rsyslog -v /etc/rsyslog.conf:/etc/rsyslog.conf -v /etc/sysconfig/rsyslog:/etc/sysconfig/rsyslog -v /etc/rsyslog.d:/etc/rsyslog.d -v /var/log:/var/log -v /var/lib/rsyslog:/var/lib/rsyslog -v /run:/run -v /etc/machine-id:/etc/machine-id -v /etc/localtime:/etc/localtime -e IMAGE=IMAGE -e NAME=NAME --restart=always IMAGE /bin/rsyslog.sh",
         "summary": "A containerized version of the rsyslog utility
    ...

    El contenedor ubi8/ubi ejecutará el shell bash, si no se da ningún otro argumento al iniciarlo con podman run. Si se estableciera un Entrypoint, su valor se utilizaría en lugar del valor de Cmd (y el valor de Cmd se utilizaría como argumento del comando Entrypoint).

    En el segundo ejemplo, la imagen del contenedor rhel8/rsyslog tiene incorporadas las etiquetas install y run. Estas etiquetas indican cómo debe configurarse el contenedor en el sistema (instalar) y ejecutarse (ejecutar).

  2. Mount a container: Usando el comando podman, monta un contenedor activo para investigar más a fondo su contenido. Este ejemplo ejecuta y enumera un contenedor rsyslog en ejecución, y luego muestra el punto de montaje desde el que se puede examinar el contenido de su sistema de archivos:

    # podman run -d registry.redhat.io/rhel8/rsyslog
    # podman ps
    CONTAINER ID IMAGE             COMMAND         CREATED        STATUS      PORTS NAMES
    1cc92aea398d ...rsyslog:latest /bin/rsyslog.sh 37 minutes ago Up 1 day ago      myrsyslog
    # podman mount 1cc92aea398d
    /var/lib/containers/storage/overlay/65881e78.../merged
    # ls /var/lib/containers/storage/overlay/65881e78*/merged
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

    Después del podman mount, el contenido del contenedor es accesible desde el directorio listado en el host. Utilice ls para explorar el contenido de la imagen.

  3. Check the image’s package list: Para comprobar los paquetes instalados en el contenedor, indique al comando rpm que examine los paquetes instalados en el punto de montaje del contenedor:

    # rpm -qa --root=/var/lib/containers/storage/overlay/65881e78.../merged
    redhat-release-server-7.6-4.el7.x86_64
    filesystem-3.2-25.el7.x86_64
    basesystem-10.0-7.el7.noarch
    ncurses-base-5.9-14.20130511.el7_4.noarch
    glibc-common-2.17-260.el7.x86_64
    nspr-4.19.0-1.el7_5.x86_64
    libstdc++-4.8.5-36.el7.x86_64
Red Hat logoGithubRedditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

© 2024 Red Hat, Inc.