Podman e Docker Compose

Ti sei mai chiesto come usare Podman e Docker Compose? Vediamo insieme i vantaggi e le alternative a disposizione.

 

Podman: cos’è (short version)

 

Ref. https://www.theredcode.it/podman/what-is-podman/

 

Podman (abbr. Pod Manager) è un container engine rilasciato nel 2018. È stato sviluppato da Red Hat e somiglia a Docker per molti aspetti, come l’utilizzo della riga di comando; questo rende infatti possibile utilizzare i comandi tipici di Docker su Podman, utilizzando l’alias docker=podman.

 

Nella maggior parte dei casi il passaggio da Docker a Podman è relativamente semplice; la novità però che caratterizza Podman è l’assenza di un demone centrale come istanza di controllo del singolo container e questo offre la possibilità di accedere alle diverse applicazioni virtualizzate anche senza permessi di root.

 

Podman gira su tutte le distribuzioni di Linux disponibili come Ubuntu, Fedora, CentOS, Debian e RHEL ma anche su Raspbian. Per la maggior parte dei casi, questo motore si può installare direttamente attraverso la gestione dei pacchetti del relativo sistema.

 

Per installarlo, è possibile seguire le indicazioni della documentazione ufficiale.

 

Docker Compose: cos’è (short version)

 

Docker Compose è uno strumento per definire ed eseguire applicazioni Docker multi-container. Con questo strumento, basta usare un file YAML per configurare diversi servizi che compongono la tua applicazione ed avviarli con un solo comando, creando e avviando tutti i servizi necessari.

 

Disponibile per Mac, Windows e Linux, possiamo installarlo tramite i seguenti comandi, che scaricano il pacchetto tramite curl e poi gli assegnano i permessi di esecuzione:

 

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose


$ sudo chmod +x /usr/local/bin/docker-compose

 

 

Altrimenti, la maggior parte dei package manager permettono di installarlo da riga di comando:

 

$ sudo apt install docker-compose

 

Usare Docker Compose con Podman

 

Esistono moltissimi esempi online di file docker-compose.yml da usare come esempio: in questo articolo, useremo questo repository analizzato nel precedente articolo sullo stack MEAN.

Prima di eseguire Docker Compose, ci assicuriamo che tutti i pacchetti richiesti siano installati e configuriamo il servizio di sistema Podman (in versione 3.0 o successiva) utilizzando systemd.

 

Oltre a Podman e alle sue dipendenze, devono essere installati i pacchetti podman-docker e docker-compose, per cui, a seconda del package manager a disposizione, installiamo i suddetti pacchetti.

 

Dopo averlo fatto, avviamo il servizio di Podman attivato dalla socket utilizzando il seguente comando:

 

$ sudo systemctl start podman.socket

 

A questo punto, utilizziamo come di consueto Docker Compose per avviare il nostro set di servizi con il seguente comando:

 

$ sudo docker-compose up

 

Una volta che i servizi saranno stati avviati e pronti all’uso, potremo usare come di consueto i comandi che useremmo con Docker:

 

$ sudo podman ps # container attivi

$ sudo podman volume ls # elenco dei volumi

…

 

 

Usare Podman Compose

 

Com’è ovvio, non potevamo non aspettarci un parallelo al consueto Docker Compose: in questo caso, non ci resta che installarlo e provarlo!

 

Installazione tramite curl

 

Utilizzando curl, andiamo a scaricare il pacchetto e gli assegniamo i permessi di esecuzione:

 

$ curl -o /usr/local/bin/podman-compose https://raw.githubusercontent.com/containers/podman-compose/devel/podman_compose.py

$ chmod +x /usr/local/bin/podman-compose

 

 

Installazione con dnf

 

Per sistemi Fedora e similari, utilizzare il seguente comando:

 

$ sudo dnf install podman-compose

 

Installazione con pip3

 

Per sistemi che abbiano installato pip3, utilizzare il seguente comando:

 

$ pip3 install podman-compose

 

Dopodiché, per poterlo utilizzare, è sufficiente avere a disposizione il classico file docker-compose.yml, ma sostituendo al classico comando docker-compose, la parola podman:

 

$ podman-compose –help

$ podman-compose up # crea ed avvia i container

$ podman-compose down # arresta e rimuove container, volumi, immagini, ecc.

$ podman-compose ps # elenco dei container

…

 

Risorse utili

Condividi la tua opinione