Podman e Docker Compose

  • Di
  • 2021-06-09 - 3 minuti
banner

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

Post correlati

Partners

Community, aziende e persone che supportano attivamente il blog

Logo di Codemotion
Logo di GrUSP
Logo di Python Milano
Logo di Schrodinger Hat
Logo di Python Biella Group
Logo di Fuzzy Brains
Logo di Django Girls
Logo di Improove
Logo del libro open source
Logo di NgRome

Iscriviti alla newsletter

Per non perderti gli ultimi articoli e per vincere biglietti e gadget TheRedCode

Riceverai una volta al mese (o anche meno) gli articoli piĂš interessanti pubblicati sul blog, e potrai provare a vincere un biglietto per uno dei prossimi eventi!

Andiamo!