avatar

Podman e Docker Compose


@ Serena Sensini | Mercoledì 9 Giugno 2021 | 3 minuti

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

Podman: cos’è (short version)

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 con pip3

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

$ pip3 install podman-compose

Installazione con dnf

Per sistemi Fedora e similari, utilizzare il seguente comando:

$ sudo dnf install podman-compose

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

$ podman-compose --help

$ podman-compose up # crea ed avvia i servizi con relativi container

$ podman-compose down # arresta e rimuove i servizi con relativi container, volumi, immagini, ecc.

$ podman-compose ps # elenco dei servizi
...

E tu, che ne pensi? L’hai provato?

Risorse utili

Ti potrebbe interessare anche...

Condividi questo post




avatar

Social