GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo ejecutar contenedores como servicio Systemd con Podman

Como sabemos, podman es una herramienta sin daemon de código abierto que proporciona un entorno para construir, ejecutar y administrar contenedores. Ejecutar contenedores como servicio systemd significa que los contenedores se iniciarán automáticamente cuando se reinicie el sistema.

En esta publicación, aprenderemos cómo ejecutar contenedores como servicio systemd con podman en distribuciones basadas en RHEL como RHEL 8, CentOS 8 y Rocky Linux 8.

Requisitos previos:

  • Instalación mínima del sistema operativo basado en RHEL.
  • Conexión estable a Internet
  • Usuario Sudo con privilegios de root

En esta demostración, uso RHEL 8.5 mínimo, pero estos pasos también se aplican a CentOS 8 y Rocky Linux 8.  Pasemos a los pasos,

Paso 1) Instalar Podman

Para instalar podman en RHEL 8, ejecute

$ sudo dnf install @container-tools -y

Para CentOS 8/Rocky Linux 8, ejecute

$ sudo dnf install -y podman

Verificar la instalación del podman

Para verificar si podman se instaló correctamente o no, intente girar el contenedor 'hello-world' usando el comando debajo de podman.

$ podman -v
podman version 3.3.1
$
$ podman run 'hello-world'

Nota:cuando ejecutamos podman por primera vez, nos pide que elijamos el registro donde desea descargar la imagen del contenedor.

La salida del comando anterior se vería a continuación:

El prefecto anterior confirma que podman se instaló correctamente. Pasemos al siguiente paso.

Paso 2) Generar Systemd Service de un contenedor

Supongamos que queremos generar el servicio systemd para el contenedor rsyslog. Primero haga girar el contenedor rsyslog usando los siguientes comandos podman,

$ podman run -d --name <Container-Name>  <Image-Name>

Nota:si desea descargar la imagen del contenedor rsyslog de un registro específico, utilice la siguiente sintaxis:

$ podman run -d --name container-name  <registry-URL>/<image-name>

En esta demostración, he utilizado el registro de Red Hat. Así que primero inicie sesión en el registro

$ podman login registry.access.redhat.com
Username: <Specify-User-Name>
Password: <Enter-Password>
Login Succeeded!
$

Ahora intente girar el contenedor usando el siguiente comando podman,

$ podman run -d --name rsyslog-server registry.access.redhat.com/rhel7/rsyslog
$ podman ps

Ahora cree el servicio systemd para el contenedor rsyslog-server, ejecute los siguientes comandos

$ mkdir -p .config/systemd/user
$ cd .config/systemd/user/
$ podman generate systemd --name rsyslog-server --files --new
/home/sysops/.config/systemd/user/container-rsyslog-server.service
$

Como podemos arriba, se crea el servicio systemd.

Para obtener más detalles sobre el comando 'podman generar systemd', consulte su página de ayuda

$ podman generate systemd --help

Paso 3) Iniciar y habilitar el servicio Container Systemd

Ejecute el siguiente comando systemctl para iniciar y habilitar el servicio systemd para el contenedor rsyslog-server.

$ cd .config/systemd/user/
$ systemctl --user daemon-reload
$ systemctl --user enable container-rsyslog-server.service
$ systemctl --user restart container-rsyslog-server.service

Ahora verifique el estado del servicio systemd y el estado del contenedor, ejecute

$ systemctl --user status container-rsyslog-server.service
$ podman ps

Ahora, cuando se reinicia el sistema, el contenedor se iniciará automáticamente a través de su servicio systemd. Así que reiniciémoslo una vez y verifiquemos el servicio del contenedor.

$ sudo reboot

Una vez que el sistema vuelva a estar en línea, inicie sesión en el sistema y verifique el servicio del contenedor

$ podman ps
$ cd .config/systemd/user/
$ systemctl --user status container-rsyslog-server.service

Genial, esto confirma que el contenedor rsyslog-server se inicia automáticamente después del reinicio a través de su servicio systemd.

Eso es todo de este post, espero que lo hayas encontrado informativo. Comparta sus comentarios y consultas.

Leer también :Cómo ejecutar Jenkins Container como servicio Systemd con Docker


Linux
  1. Cómo administrar los servicios de Systemd con Systemctl en Linux

  2. Cómo crear un servicio Systemd en Linux

  3. Cómo redirigir la salida del servicio systemd a un archivo

  4. Cómo detener el servicio systemd

  5. ¿Cómo enviar un correo electrónico si se reinicia un servicio systemd?

Cómo ejecutar Shell Script como servicio Systemd en Linux

Administrar cgroups con systemd

Cómo ejecutar Podman en Windows

Cómo ejecutar pods como servicios systemd con Podman

Cómo ejecutar Shell Script como servicio SystemD en Linux

Cómo ejecutar un alias con Sudo en Linux