Docker è uno strumento popolare per sviluppare e distribuire software in pacchetti noti come container. Ubuntu è una delle distribuzioni Linux più popolari ed è un sistema operativo ben supportato da Docker.

L’installazione di Docker su Ubuntu crea una piattaforma ideale per i vostri progetti di sviluppo, perché usa macchine virtuali leggere che condividono il kernel del sistema operativo di Ubuntu. Questo tutorial vi spiegherà 4 modi per farlo.

Maggiori Informazioni su Docker

Docker aiuta a rendere portatili le applicazioni permettendovi di costruirle ed eseguirle su qualsiasi host Docker. L’immagine di un container può essere utilizzata senza modifiche ovunque Docker sia disponibile, dal vostro laptop al cloud. Questo semplifica l’esperienza di chi sviluppa eliminando le differenze tra gli ambienti di esecuzione. Il formato dei container è anche facile da distribuire su più macchine fisiche, consentendovi di scalare facilmente le applicazioni in risposta alle mutevoli richieste.

Docker include tutto ciò di cui avete bisogno per creare ed eseguire immagini di container, sia che provengano da Docker Hub e altri registri pubblici, sia che siano i vostri file Docker.

Prepararsi a Installare Docker su Ubuntu

Potete installare l’ultima versione di Docker sulle versioni 18.04, 20.04, 21.10 e 22.04 di Ubuntu. Sono supportate le architetture x64_64/AMD64, ARMhf, ARM64 e S390x.

Esistono diversi modi per installare Docker e la scelta dipenderà dalle funzionalità di cui avete bisogno e dall’approccio che preferite alla gestione dei pacchetti. In questa guida scoprirete tutte le opzioni possibili.

Scegliere un Docker Flavor

Docker su Linux tradizionalmente si usava solo da terminale. Un’installazione funzionante comprende Docker Engine, un daemon che esegue i container, e l’interfaccia a riga di comando (CLI) docker per interagire con il daemon.

Docker Desktop è un modo alternativo di usare Docker. Storicamente disponibile solo su Windows e Mac, è stato lanciato per Linux nel maggio 2022. Docker Desktop su Ubuntu richiede un processore AMD64 e Ubuntu 21.10 o 22.04. Fornisce un’interfaccia grafica per la gestione dei container, un cluster Kubernetes integrato e il supporto per estensioni di terze parti. Docker Desktop offre anche le CLI docker e Docker Compose.

Docker Desktop è diverso da Docker Engine perché usa una macchina virtuale per eseguire i vostri container (per questo motivo Docker Desktop è necessario per gli utenti di Windows e MacOS). Sebbene sia possibile usare entrambe le versioni su Ubuntu, potreste trovare dei conflitti tra le versioni di docker CLI. È meglio sceglierne una e attenersi a quella. Scegliete Docker Engine se vi sentite a vostro agio con il terminal e se volete il miglior supporto e le migliori prestazioni. La VM di Docker Desktop lo rende leggermente più pesante ma è la scelta migliore se volete un’interfaccia utente integrata o se volete usare Kubernetes.

Installare Docker Engine su Ubuntu

Docker Engine è il metodo standard per eseguire Docker su Ubuntu. Funziona con tutte le versioni e gli ambienti supportati, da un computer Ubuntu Desktop locale all’host cloud Ubuntu Server. Assicuratevi di usare una versione di Ubuntu 18.04 o più recente prima di continuare.

Docker Engine ha 3 diversi metodi di installazione:

  1. Un repository ufficiale di Ubuntu apt
  2. Un pacchetto Debian indipendente (.deb)
  3. Uno script di installazione automatica

L’opzione 1, il repository Ubuntu apt, è la più usata. Aggiunge Docker all’elenco dei pacchetti in modo da poter installare facilmente gli aggiornamenti futuri eseguendo apt upgrade. L’opzione 2 non supporta gli aggiornamenti automatici, ma è ideale per l’installazione di Docker su sistemi offline air-gapped. Lo script di installazione automatica è il metodo più semplice per iniziare, ma è configurato solo per un uso di sviluppo. Docker ne sconsiglia l’uso in ambienti di produzione.

Usate il repository apt quando lavorate con un sistema di produzione, volete aggiornamenti semplici o avete bisogno di usare lo stesso meccanismo in tutti gli ambienti.

Usate lo script di installazione automatica se volete un’esperienza di configurazione rapida mentre sperimentate Docker sul vostro computer.

1. Installare Docker Con il Repository apt

Docker pubblica i pacchetti nel proprio repository apt. Dovrete aggiungere questo repository all’elenco delle fonti di apt, altrimenti l’installazione di apt non sarà in grado di trovare i pacchetti Docker.

Iniziate ad aggiornare l’elenco dei pacchetti esistenti e installate alcune dipendenze per i passi successivi. Gli strumenti ca-certificates, curl, gnupg e lsb_release saranno utilizzati per scaricare i dettagli del repository Docker apt corretto e la chiave di firma per il vostro sistema. Anche se probabilmente avete già questi pacchetti, non fa male assicurarsi che siano disponibili.

$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release

Successivamente, registrate il portachiavi GPG di Docker con apt. Questo permetterà a apt di convalidare i pacchetti Docker installati.

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg

Il comando curl scarica la chiave GPG di Docker per Ubuntu, la converte in una codifica OpenGPG standard e la salva nella directory keyring di apt. chmod serve per impostare i permessi sul file keyring in modo che apt lo rilevi in modo affidabile.

Ora potete aggiungere il sorgente del pacchetto Docker al vostro sistema. Eseguite il seguente comando:

$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Questo comando usa la sostituzione della shell per rilevare automaticamente l’architettura del vostro sistema, come AMD64 o ARM64, e scaricare l’elenco di pacchetti appropriato. Verrà verificato utilizzando la chiave GPG aggiunta in precedenza. Il repository viene aggiunto come un nuovo elenco di pacchetti all’interno del file apt /etc/apt/sources.list.d directory.

Aggiornate nuovamente gli elenchi dei pacchetti in modo che apt sappia che i pacchetti Docker esistono:

$ sudo apt update

Ora potete usare il comando apt install per aggiungere i componenti di Docker al vostro sistema. Installerete l’ultima versione di Docker Community Edition (CE). Ci sono tre pacchetti da installare:

  • docker-ce: il daemon Docker Engine.
  • docker-ce-cli: la CLI di Docker con cui interagire.
  • containerd.io: il runtime del container, noto come containerd, che avvia ed esegue i vostri container.
$ sudo apt install docker-ce docker-ce-cli containerd.io

2. Installare Docker Con il Pacchetto Debian

Il pacchetto ufficiale di .deb è semplice da configurare, ma dovrete scaricare e installare manualmente ogni nuova versione. I pacchetti sono ospitati su un semplice file server. Per prima cosa visitate la pagina delle note di rilascio di Docker per trovare l’ultimo numero di versione disponibile, ad esempio 20.10.20. Successivamente, vai alla pagina GitHub di Containerd per verificare il numero di versione. Il numero sarà 1.6.8.

Ora potete eseguire la seguente sequenza di comandi per scaricare il giusto set di pacchetti per la vostra piattaforma. Sostituite <DOCKER_VERSION> e <CONTAINERD_VERSION> con i numeri di versione di Docker e containerd.

$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce.deb
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce-cli_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce-cli.deb
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/containerd.io_<CONTAINERD_VERISON>-1_amd64.deb -o containerd.deb

Potete anche scaricare i file e controllare tutte le versioni disponibili visitando l’elenco delle directory della vostra versione di Ubuntu nel browser.

Una volta scaricati i pacchetti Docker CE, CLI e containerd, usate il seguente comando per installarli:

$ sudo apt install ./docker-ce.deb ./docker-ce-cli.deb ./containerd.deb

Modificate i nomi dei file se avete scaricato manualmente i pacchetti senza usare lo script fornito in precedenza.

3. Installare Docker con lo Script di Installazione

Lo script di installazione di Docker automatizza l’installazione di tutti i componenti di Docker. Non è interattivo, quindi potete sedervi e aspettare mentre il sistema viene preparato.

Per prima cosa scaricate lo script:

$ curl -fsSL https://get.docker.com -o get-docker.sh

Ora eseguite lo script con i privilegi di root:

$ sudo sh get-docker.sh
Executing docker install script
...

Attendete che lo script venga completato. Dovreste vedere un messaggio di conferma che indica che Docker è stato installato.

Lo script è pensato come una soluzione unica. Non è possibile personalizzare le sue funzioni senza modificare direttamente il sorgente dello script. Inoltre, non è stato progettato per eseguire gli aggiornamenti di Docker, in quanto non porterà le dipendenze alle loro ultime versioni.

Assicuratevi che Docker Engine Funzioni su Ubuntu

Qualunque sia il metodo di installazione utilizzato, dovete assicurarvi che tutto funzioni avviando un container:

$ sudo docker run hello-world

Vedrete che il client di Docker preleva il sito hello-world:image dal repository di Docker Hub:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625
Status: Downloaded newer image for hello-world:latest

Un nuovo container si avvierà automaticamente. L’immagine di partenza “hello-world” è configurata per eseguire un semplice comando che fornisce alcune informazioni di base su Docker e poi esce immediatamente:

Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 (amd64)
 3. The Docker daemon created a new container from that image which runs the
 executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
 to your terminal.

Quando vedete l’output mostrato sopra significa che Docker è pronto all’uso. Il daemon ha estratto con successo l’immagine hello-world:latest da Docker Hub e ha avviato un container che la utilizza. Tutto ciò che è stato emesso dalla riga “Hello from Docker” in poi è stato emesso dal processo all’interno del container.

Impostare i Permessi di Docker Engine su Ubuntu

Una nuova installazione di Docker Engine di solito richiede i privilegi di root per eseguire i comandi della CLI di docker. È necessario anteporre a ogni comando il prefisso sudo, il che è scomodo.

Potete evitare questo requisito aggiungendo al gruppo docker dopo aver installato Docker Engine usando i passaggi precedenti. Questa modifica opzionale vi dà i permessi per eseguire i comandi docker come un utente normale, senza sudo, il che semplifica la vostra esperienza CLI.

Assicuratevi che il gruppo di utenti docker esista:

$ sudo groupadd docker

Quindi aggiungetevi a esso:

$ sudo usermod -aG docker $USER

Se in precedenza avete eseguito un comando docker con sudo, dovrete correggere i permessi della vostra directory ~/.docker:

$ sudo chown $USER:$USER /home/$USER/.docker -R
$ sudo chmod g+rwx $HOME/.docker -R

In questo modo il vostro account utente sarà autorizzato a leggere e scrivere i file presenti nella directory.

Uscite dal sistema e rientrate in esso in modo che la vostra adesione al gruppo abbia effetto. Provate a eseguire il comando docker senza sudo:

$ docker run hello-world

Questo passo successivo all’installazione completa il processo di configurazione di Docker su Ubuntu. Il daemon è già configurato per avviarsi automaticamente, quindi non dovrete impostare manualmente un servizio. Se avete in programma un’installazione avanzata, consultate il manuale d’uso di Docker per le istruzioni su come configurare la rete personalizzata, il logging e la gestione dello storage dei volumi.

Aggiungere Docker Compose alla Vostra Installazione di Ubuntu

Docker Compose è un popolare strumento di accompagnamento di Docker che rende più facile lavorare con applicazioni che usano più container. Mentre la CLI di docker si rivolge a un solo container per ogni comando, docker compose può avviare e arrestare più container per ogni azione. Questo semplifica la gestione di sistemi con servizi frontend, backend e database separati.

Docker Compose è ora disponibile come parte della docker CLI. Il plugin Compose V2 è incluso quando usate lo script di installazione ufficiale per installare Docker. È disponibile anche in apt se usate questo metodo:

$ sudo apt install docker-compose-plugin

In alternativa, potete scaricare l’ultimo archivio di .deb e installarlo manualmente:

$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb -o docker-compose-plugin.deb
$ sudo apt install -i ./docker-compose-plugin.deb

Verificate che Compose funzioni provando il comando docker compose version:

$ docker compose version
Docker Compose version v2.6.0

Installare Docker Desktop su Ubuntu

Mentre Docker Engine è limitato a un’esperienza solo CLI, Docker Desktop offre un’interfaccia grafica di gestione, il supporto Kubernetes integrato ed estensioni opzionali di terze parti che possono aiutarvi a semplificare i flussi di lavoro dei container. Si tratta di un’ottima scelta quando cercate la facilità d’uso della vostra postazione di lavoro.

Per installare Docker Desktop, installate prima alcune dipendenze utilizzando apt:

$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release

Quindi, eseguite la seguente serie di comandi per aggiungere il repository apt di Docker. Sebbene Docker Desktop non sia incluso nel repository, i pacchetti al suo interno vengono citati come dipendenze dall’archivio Debian di Desktop.

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update

Il comando curl scarica la chiave GPG di Docker per Ubuntu, la converte in una codifica OpenGPG standard e la salva nella directory apt. chmod serve per impostare i permessi sul file del portachiavi in modo che apt lo rilevi in modo affidabile.

Scaricate l’archivio Docker Desktop Debian dal link presente nella documentazione. Questo fornirà l’ultima versione stabile di Docker Desktop per Linux. Usate apt per installare il pacchetto, sostituendo il numero di versione che avete scaricato:

$ sudo apt install ./docker-desktop-4.11.0-amd64.deb

Docker Desktop verrà ora visualizzato nel vostro launcher di applicazioni. Usate il vostro launcher per avviare Docker Desktop e aprire l’interfaccia utente. Potrete eseguire i comandi docker, docker compose e kubectl anche nel vostro terminale. L’applicazione aggiunge anche un menu alla barra della shell che mostra lo stato attuale di Docker Desktop e vi permette di eseguire alcune azioni rapide.

Al primo avvio di Docker Desktop vi verrà chiesto di accettare un contratto di servizio. Premete il pulsante Accetta se siete d’accordo e attendete che Docker Desktop avvii la sua macchina virtuale.

Dopo qualche istante, la dashboard verrà caricata. Vi trovate scorciatoie per creare nuovi container dalle immagini più diffuse, evitando lunghi comandi da terminale.

Schermata di Docker Desktop in esecuzione su Ubuntu.
Docker Desktop installato su Ubuntu.

DevKinsta: Docker Desktop per WordPress

Le soluzioni specializzate costruite sulla base di Docker offrono un’esperienza ancora più semplice per tecnologie specifiche. DevKinsta è uno strumento di sviluppo locale gratuito per la creazione di temi e plugin WordPress che usa Docker per isolare e proteggere completamente i vostri siti WordPress. Rende semplice e veloce l’avvio e la personalizzazione di un nuovo progetto WordPress senza dover configurare i server. Una volta pronto, potete inviare direttamente alla piattaforma Kinsta per distribuire il vostro sito live.

Potete installare DevKinsta su MacOS, Windows e Ubuntu.

Riepilogo

Docker è il modo in cui la maggior parte delle persone che lavorano nello sviluppo iniziano a usare i container. Potete installare facilmente Docker sul vostro sistema Ubuntu, sia come Docker Engine che come il nuovo Docker Desktop. Una volta installato Docker, avrete tutto il necessario per costruire ed eseguire container, semplificando lo sviluppo e riducendo le discrepanze tra gli ambienti.

Se state sviluppando temi e plugin per WordPress, DevKinsta può semplificare la creazione di un ambiente di sviluppo locale e la distribuzione del vostro sito.

James Walker

James Walker è il fondatore di Heron Web, uno studio di sviluppo software con sede nel Regno Unito che fornisce soluzioni su misura per le PMI. Ha esperienza nella creazione di software personalizzati attraverso flussi di lavoro ingegneristici basati sulle moderne metodologie DevOps. James è anche uno scrittore tecnico freelance e ha scritto molto sul ciclo di vita dello sviluppo software, sulle tendenze attuali del settore e sui concetti e le tecnologie DevOps.