6.2. Ejecución de contenedores con etiquetas de ejecución
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 Copiar enlaceEnlace copiado en el portapapeles!
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
Tire de la imagen de
rsyslog:# podman pull registry.redhat.io/rhel8/rsyslogMostrar (pero no ejecutar) la etiqueta de ejecución
installpararsyslog:# 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.shEsto muestra que el comando abrirá privilegios al host, montará el sistema de archivos raíz del host en
/hosten el contenedor, y ejecutará un scriptinstall.sh.Ejecute la etiqueta de ejecución
installpararsyslog:# 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/syslogEsto crea archivos en el sistema anfitrión que la imagen
rsyslogutilizará posteriormente.Muestra la etiqueta de ejecución
runpararsyslog:# 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.shEsto muestra que el comando abre privilegios al host y monta archivos y directorios específicos del host dentro del contenedor, cuando lanza el contenedor
rsyslogpara ejecutar el demoniorsyslogd.Ejecute la etiqueta de ejecución
runpararsyslog:# 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 28a0d719ff179adcea81eb63cc90fcd09f1755d5edb121399068a4ea59bd0f53El contenedor
rsyslogabre privilegios, monta lo que necesita del host y ejecuta el demoniorsyslogden segundo plano (-d). El demoniorsyslogdcomienza a recopilar mensajes de registro y a dirigir los mensajes a los archivos del directorio/var/log.Muestra la etiqueta de ejecución
uninstallpararsyslog:# 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.shEjecute la etiqueta de ejecución
uninstallpararsyslog:# 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.shEn este caso, el script
uninstall.shsólo elimina el archivo/etc/logrotate.d/syslog. Tenga en cuenta que no limpia los archivos de configuración.