Buscar

6.2. Ejecución de contenedores con etiquetas de ejecución

download PDF

Algunas imágenes de Red Hat incluyen etiquetas que proporcionan líneas de comando preestablecidas para trabajar con esas imágenes. Usando el comando podman container runlabel <label>, puede decirle a podman que ejecute el comando definido en ese <label> para la imagen. Las etiquetas de ejecución existentes incluyen:

  • install: Configura el sistema anfitrión antes de ejecutar la imagen. Típicamente, esto resulta en la creación de archivos y directorios en el host a los que el contenedor puede acceder cuando se ejecuta más tarde.
  • run: Identifica las opciones de la línea de comandos de podman que se utilizarán al ejecutar el contenedor. Normalmente, las opciones abrirán privilegios en el host y montarán el contenido del host que el contenedor necesita para permanecer permanentemente en el host.
  • uninstall: Limpia el sistema anfitrión después de que haya terminado de ejecutar el contenedor.

Las imágenes de Red Hat que tienen una o más etiquetas de ejecución incluyen las imágenes rsyslog y support-tools. El siguiente procedimiento ilustra cómo utilizar esas imágenes.

6.2.1. Ejecución de rsyslog con runlabels

La imagen de contenedor rhel8/rsyslog está hecha para ejecutar una versión en contenedor del demonio rsyslogd. Dentro de la imagen rsyslog se encuentran las etiquetas de ejecución install, run y uninstall. El siguiente procedimiento te lleva a instalar, ejecutar y desinstalar la imagen rsyslog:

Procedimiento

  1. Tire de la imagen de rsyslog:

    # podman pull registry.redhat.io/rhel8/rsyslog
  2. Mostrar (pero no ejecutar) la etiqueta de ejecución install para rsyslog:

    # podman container runlabel install --display rhel8/rsyslog
    command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel8/rsyslog:latest /bin/install.sh

    Esto muestra que el comando abrirá privilegios al host, montará el sistema de archivos raíz del host en /host en el contenedor, y ejecutará un script install.sh.

  3. Ejecute la etiqueta de ejecución install para rsyslog:

    # podman container runlabel install rhel8/rsyslog
    command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel8/rsyslog:latest /bin/install.sh
    Creating directory at /host//etc/pki/rsyslog
    Creating directory at /host//etc/rsyslog.d
    Installing file at /host//etc/rsyslog.conf
    Installing file at /host//etc/sysconfig/rsyslog
    Installing file at /host//etc/logrotate.d/syslog

    Esto crea archivos en el sistema anfitrión que la imagen rsyslog utilizará posteriormente.

  4. Muestra la etiqueta de ejecución run para rsyslog:

    # podman container runlabel run --display rhel8/rsyslog
    command: podman run -d --privileged --name rsyslog --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=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog --restart=always registry.redhat.io/rhel8/rsyslog:latest /bin/rsyslog.sh

    Esto muestra que el comando abre privilegios al host y monta archivos y directorios específicos del host dentro del contenedor, cuando lanza el contenedor rsyslog para ejecutar el demonio rsyslogd.

  5. Ejecute la etiqueta de ejecución run para rsyslog:

    # podman container runlabel run rhel8/rsyslog
    command: podman run -d --privileged --name rsyslog --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=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog --restart=always registry.redhat.io/rhel8/rsyslog:latest /bin/rsyslog.sh
    28a0d719ff179adcea81eb63cc90fcd09f1755d5edb121399068a4ea59bd0f53

    El contenedor rsyslog abre privilegios, monta lo que necesita del host y ejecuta el demonio rsyslogd en segundo plano (-d). El demonio rsyslogd comienza a recopilar mensajes de registro y a dirigir los mensajes a los archivos del directorio /var/log.

  6. Muestra la etiqueta de ejecución uninstall para rsyslog:

    # podman container runlabel uninstall --display rhel8/rsyslog
    command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel8/rsyslog:latest /bin/uninstall.sh
  7. Ejecute la etiqueta de ejecución uninstall para rsyslog:

    # podman container runlabel uninstall rhel8/rsyslog
    command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel8/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel8/rsyslog:latest /bin/uninstall.sh

    En este caso, el script uninstall.sh sólo elimina el archivo /etc/logrotate.d/syslog. Tenga en cuenta que no limpia los archivos de configuración.

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.