Come installare Docker e Docker Compose su Linux

Docker ti offre tutto il necessario per creare ed eseguire container sul tuo sistema Linux . I contenitori sono simili alle macchine virtuali leggere. Ti consentono di creare immagini di applicazioni portatili che vengono eseguite utilizzando il kernel del sistema operativo del tuo host.

Puoi utilizzare Docker su piattaforme Debian, Fedora, CentOS e Raspbian. Anche i derivati ​​di queste distribuzioni funzioneranno. Docker fornisce build x86/x64 e ARM per la maggior parte delle piattaforme supportate. Per questa guida stiamo usando un sistema Debian con il gestore di pacchetti apt. Istruzioni specifiche per altre distribuzioni possono essere trovate nei documenti Docker.

Docker Compose ti consente di creare ed eseguire pile di più contenitori. Crei un file YAML che configura i contenitori della tua applicazione. È quindi possibile utilizzare un unico comando per avviare tutti i contenitori e collegarli insieme. Compose ti aiuta a separare i componenti dello stack in singoli servizi containerizzati.

Compose è distribuito indipendentemente da Docker. Installa Docker prima di aggiungere Compose & # 8211; altrimenti, Compose non sarà in grado di funzionare.

Installa Docker

Puoi utilizzare il gestore di pacchetti del tuo sistema operativo per installare l'ultima versione di Docker. Dovrai aggiungere il repository di Docker, aggiornare gli elenchi dei pacchetti e quindi installare Docker.

Debian/Ubuntu

Inizia aggiungendo le dipendenze necessario per il processo di installazione:

sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

Successivamente, aggiungi la chiave GPG del repository di Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Aggiungi il repository ai tuoi sorgenti e aggiorna i tuoi elenchi di pacchetti:

echo “deb [arch = amd64 signed-by =/usr/share/keyring/docker-archive-keyring.gpg] https: //download.docker. com/linux/ubuntu $ (lsb_release -cs) stabile “| sudo tee /etc/apt/sources.list.d/docker.list & gt;/dev/null sudo apt-get update

Ora puoi installare Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io

Fedora

Aggiungi il repository dei pacchetti di Docker:

sudo dnf -y install dnf-plugins-core sudo dnf config-manager –add-repo https://download.docker.com/linux/fedora/docker-ce.repo

Installa Docker:

sudo dnf install docker-ce docker-ce-cli containerd.io

CentOS

Aggiungi il repository dei pacchetti di Docker:

sudo yum -y install yum-utils sudo yum-config-manager –add-repo https://download.docker.com/linux/fedora/docker-ce.repo

Installa Docker:

sudo yum install docker-ce docker-ce- cli containerd.io

Utilizzo di Docker senza Sudo

Il demone Docker viene eseguito come root. Di solito è necessario anteporre i comandi Docker con sudo. Questo può diventare noioso se utilizzi spesso Docker. L'aggiunta di te stesso al gruppo docker ti consentirà di utilizzare Docker senza sudo.

sudo usermod -aG docker $ USER

Una volta che sei nel gruppo, disconnettiti e accedi di nuovo. In alternativa, eseguire il comando docker newgrp per accedere immediatamente al gruppo aggiornato. Ora dovresti essere in grado di rilasciare sudo dai comandi Docker.

Verifica dell'installazione di Docker

Ora Docker è installato, è ora di testarlo! Puoi usare l'immagine minimale hello-world.

docker run hello-world: latest

Dovresti vedere alcune righe di output apparire nel tuo terminale. Docker cercherà prima hello-world: l'ultima immagine sulla tua macchina. Poiché non esiste, l'immagine verrà quindi estratta dal repository Docker Hub.

Una volta che l'immagine è stata estratta, verrà creato un nuovo contenitore. Il contenitore è configurato per emettere un & # 8220; hello world & # 8221; messaggio e quindi uscire. Se vedi il testo, la tua installazione Docker funziona!

Gestione del servizio Docker

Puoi verificare se Docker è in esecuzione ispezionandone il servizio con systemctl. Ci sono due componenti da considerare, docker e containerd. docker è il daemon Docker Engine a cui la CLI invia i comandi. containerd è il runtime sottostante che esegue effettivamente i contenitori.

sudo systemctl status docker.service sudo systemctl status containerd.service

Puoi gestire i demoni come qualsiasi altro servizio sul tuo sistema. Usa systemctl stop se vuoi arrestare temporaneamente Docker e liberare le risorse di sistema usate dai tuoi contenitori:

sudo systemctl stop docker.service

Puoi riavviare il servizio con systemctl start.

Aggiunta di Docker-Compose

docker-compose è un file binario separato che è meglio scaricare direttamente dalle versioni GitHub del progetto. Le distribuzioni Linux più popolari includono Compose nei loro gestori di pacchetti, ma può essere notevolmente obsoleto.

Vai alla pagina delle versioni di Docker Compose e prendi nota dell'ultimo numero di versione. Al momento della scrittura, era 1.29.0.

Sostituisci la versione che vedi invece di 1.29.0 nel comando sottostante. Questo scaricherà il binario giusto per il tuo sistema e lo rilascerà in/usr/local/bin.

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

Quindi rendi il file eseguibile:

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

Ora sarai in grado di utilizzare il comando docker-compose nel tuo terminale. Prova a eseguire docker-compose –version per verificare.

Creazione di un semplice file Docker-Compose

Per usare docker-compose devi creare un file docker-compose.yml. Descrive i contenitori che compongono lo stack della tua applicazione. È possibile specificare i collegamenti delle porte, le variabili di ambiente, le reti e i volumi utilizzati dai contenitori.

I contenitori dichiarati nello stesso file docker-compose.yml diventano automaticamente parte dello stesso stack. Sono collegati tra loro in una rete Docker, quindi possono comunicare tra loro utilizzando i loro nomi di servizio docker-compose.yml come nomi host.

Ecco un semplice docker-compose.yml per eseguire un server web PHP e un database MySQL:

versione: & quot; 3 & quot; servizi: app: immagine: php8.0-apache ambiente: – MYSQL_SERVER = mysql – MYSQL_USERNAME = root – MYSQL_PASSWORD = porte di esempio: – $ & # 123; PORT: -80 & # 125;: 80 riavvio: a meno che non venga arrestato mysql: immagine : mysql: 8.0 esporre: – ambiente 3306: – volumi MYSQL_ROOT_PASSWORD: – mysql:/var/lib/mysql riavvio: volumi a meno che non siano stati arrestati: mysql:

Puoi avviare entrambi i servizi eseguendo docker-compose up -d. Vedrai che entrambe le immagini vengono estratte da Docker Hub. I contenitori verranno quindi avviati. Puoi fermarli entrambi usando docker-compose stop. Usa docker-compose down per rimuovere i contenitori.

Il file YAML di esempio mostra alcune funzionalità di Docker Compose. I contenitori vengono definiti nel nodo dei servizi, con ogni contenitore che dichiara la propria immagine Docker. È possibile passare le variabili di ambiente della shell in contenitori (ambienti) e configurare i collegamenti delle porte Docker (porte). Le variabili d'ambiente possono essere interpolate in stringhe usando la sintassi $ {VARIABILE: -DEFAULT}. Se la variabile non è impostata nella shell, come valore verrà invece utilizzato DEFAULT. Puoi saperne di più su Docker Compose nella nostra guida dedicata.

Riepilogo

Puoi facilmente installare Docker utilizzando i gestori di pacchetti delle distribuzioni Linux più diffuse. Aggiungi il repository Docker e quindi installa docker-ce, docker-ce-cli e containerd.io. Questi componenti ti danno tutto ciò di cui hai bisogno per creare ed eseguire i tuoi contenitori.

Una volta che sei attivo e funzionante, puoi scrivere un Dockerfile e utilizzare docker build -t my-app: latest. per costruirlo. Quindi utilizza docker run my-app: latest per avviare il contenitore.

Docker-Compose è un livello di astrazione aggiuntivo che semplifica l'esecuzione di uno & # 8220; stack & # 8221; di più contenitori. Con Compose, non è necessario eseguire manualmente più comandi in serie. Puoi scrivere un file YAML dichiarativo e utilizzare docker-compose up per avviare tutti i tuoi contenitori all'unisono.


Posted

in

by

Tags: