GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire container come servizio Systemd con Podman

Come sappiamo, podman è uno strumento open source privo di daemon che fornisce un ambiente per creare, eseguire e gestire i container. L'esecuzione di container come servizio systemd significa che i container verranno avviati automaticamente al riavvio del sistema.

In questo post impareremo come eseguire container come servizio systemd con podman su distribuzioni basate su RHEL come RHEL 8, CentOS 8 e Rocky Linux 8.

Prerequisiti:

  • Installazione minima del sistema operativo basato su RHEL.
  • Connessione Internet stabile
  • Utente Sudo con privilegi di root

In questa dimostrazione, sto utilizzando RHEL 8.5 minimo, ma questi passaggi sono applicabili anche per CentOS 8 e Rocky Linux 8.  Passiamo ai passaggi,

Passaggio 1) Installa Podman

Per installare podman su RHEL 8 , esegui

$ sudo dnf install @container-tools -y

Per CentOS 8 / Rocky Linux 8, esegui

$ sudo dnf install -y podman

Verifica l'installazione di Podman

Per verificare se podman è stato installato correttamente o meno, prova a girare il contenitore "hello-world" usando il comando podman sotto.

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

Nota:quando eseguiamo podman per la prima volta, ci viene chiesto di scegliere il registro in cui desideri scaricare l'immagine del contenitore.

L'output del comando precedente vorrebbe di seguito:

Il prefetto sopra conferma che podman è stato installato correttamente. Passiamo al passaggio successivo.

Passaggio 2) Genera il servizio Systemd di un container

Supponiamo di voler generare il servizio systemd per il contenitore rsyslog. Per prima cosa avvia il contenitore rsyslog usando i seguenti comandi podman,

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

Nota:se desideri scaricare l'immagine del contenitore rsyslog da un registro specifico, utilizza la seguente sintassi:

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

In questa dimostrazione, ho utilizzato il registro di Red Hat. Quindi prima accedi al registro

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

Ora prova a far girare il contenitore usando il seguente comando podman,

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

Ora crea il servizio systemd per il contenitore rsyslog-server, esegui i seguenti comandi

$ 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
$

Come possiamo sopra, viene creato il servizio systemd.

Per maggiori dettagli sul comando 'podman generate systemd', fare riferimento alla sua pagina di aiuto

$ podman generate systemd --help

Passaggio 3) Avvia e abilita il servizio Container Systemd

Esegui il seguente comando systemctl per avviare e abilitare il servizio systemd per il contenitore rsyslog-server.

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

Ora verifica lo stato del servizio systemd e lo stato del contenitore, esegui

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

Ora, quando il sistema viene riavviato, il container verrà avviato automaticamente tramite il suo servizio systemd. Riavviamolo quindi una volta e verifichiamo il servizio container.

$ sudo reboot

Una volta che il sistema è di nuovo online, accedi al sistema e verifica il servizio contenitore

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

Ottimo, questo conferma che il contenitore rsyslog-server viene avviato automaticamente dopo il riavvio tramite il suo servizio systemd.

Questo è tutto da questo post, spero che tu l'abbia trovato informativo. Per favore condividi il tuo feedback e le tue domande.

Leggi anche :Come eseguire Jenkins Container come servizio Systemd con Docker


Linux
  1. Come gestire i servizi Systemd con Systemctl su Linux

  2. Come creare un servizio Systemd in Linux

  3. Linux:come ottenere meno Tty con Systemd?

  4. Come eseguo uno script prima di tutto il resto all'arresto con systemd?

  5. Configurazione del servizio Systemd per l'esecuzione con accesso root

Come eseguire lo script della shell come servizio Systemd in Linux

Gestire cgroup con systemd

Come eseguire Podman su Windows

Come eseguire i pod come servizi di sistema con Podman

Come eseguire lo script della shell come servizio SystemD in Linux

Come eseguire un alias con Sudo in Linux