GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come installare Docker e Docker Compose su Linux

Docker ti offre tutto ciò di cui hai bisogno per creare ed eseguire container sul tuo sistema Linux. I container 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 usare 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. Stiamo usando un sistema Debian con apt gestore di pacchetti per questa guida. Le istruzioni specifiche per altre distribuzioni sono disponibili 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 del tuo stack in singoli servizi containerizzati.

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

RELAZIONATO: Come utilizzare Docker per containerizzare PHP e Apache

Installa Docker

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

Debian/Ubuntu

Inizia aggiungendo le dipendenze necessarie per il processo di installazione:

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

Quindi, 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/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /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 devi anteporre ai comandi Docker sudo . Questo può diventare noioso se usi spesso Docker. Aggiungendoti alla docker il gruppo ti consentirà di utilizzare Docker senza sudo .

sudo usermod -aG docker $USER

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

Test dell'installazione Docker

Ora Docker è installato, è ora di testare il funzionamento! Puoi usare il minimo hello-world immagine.

docker run hello-world:latest

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

Una volta che l'immagine è stata estratta, da essa verrà creato un nuovo contenitore. Il contenitore è configurato per emettere un messaggio di base "hello world" e quindi uscire. Se vedi il testo, l'installazione di Docker funziona!

Gestione del servizio Docker

Puoi verificare se Docker è in esecuzione controllando il suo servizio con systemctl . Ci sono due componenti da considerare, docker e containerd . docker è il demone Docker Engine a cui la CLI invia i comandi. containerd è il runtime sottostante che esegue effettivamente i tuoi 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 desideri interrompere temporaneamente Docker e liberare risorse di sistema utilizzate dai tuoi container:

sudo systemctl stop docker.service

Puoi riavviare il servizio con systemctl start .

Aggiunta di Docker-Compose

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

Vai alla pagina delle versioni di Docker Compose e prendi nota del numero di versione più recente. 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 eseguibile il file:

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

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

Creazione di un semplice file Docker-Compose

Per utilizzare docker-compose devi creare un docker-compose.yml file. Questo descrive i contenitori che compongono lo stack della tua applicazione. Puoi specificare i collegamenti delle porte, le variabili di ambiente, le reti e i volumi utilizzati dai tuoi container.

Contenitori dichiarati nello stesso docker-compose.yml il file diventa automaticamente parte dello stesso stack. Sono collegati tra loro in una rete Docker, quindi possono comunicare tra loro utilizzando il loro docker-compose.yml nomi dei servizi come nomi host.

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

version: "3"

services:
  app:
    image: php8.0-apache
    environment:
      - MYSQL_SERVER=mysql
      - MYSQL_USERNAME=root
      - MYSQL_PASSWORD=example
    ports:
      - ${PORT:-80}:80
    restart: unless-stopped
  mysql:
    image: mysql:8.0
    expose:
      - 3306
    environment:
      - MYSQL_ROOT_PASSWORD
    volumes:
      - mysql:/var/lib/mysql
    restart: unless-stopped

volumes:
  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 interromperli 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 sono definiti in services nodo, con ogni contenitore che dichiara la sua image Docker . Puoi passare le variabili d'ambiente della shell nei contenitori (environments ) e imposta i binding delle porte Docker (ports ). Le variabili d'ambiente possono essere interpolate in stringhe usando il ${VARIABLE:-DEFAULT} sintassi. Se la variabile non è impostata nella shell, DEFAULT verrà invece utilizzato come valore. Puoi saperne di più su Docker Compose nella nostra guida dedicata.

Riepilogo

Puoi installare facilmente 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 offrono tutto ciò di cui hai bisogno per creare ed eseguire i tuoi container.

Una volta che sei operativo, puoi scrivere un Dockerfile e usa docker build -t my-app:latest . per costruirlo. Quindi usa docker run my-app:latest per avviare il tuo container.

Docker-Compose è un livello di astrazione aggiuntivo che semplifica l'esecuzione di uno "stack" 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 container all'unisono.

RELAZIONATO: Cos'è Docker Compose e come lo usi?


Docker
  1. Come installare Docker sul sistema Fedora Linux

  2. Come installare e utilizzare Docker su Ubuntu 18.04

  3. Come installare e utilizzare Docker Compose su Ubuntu 18.04

  4. Come installare e utilizzare Docker su CentOS 7

  5. Come installare e utilizzare Docker Compose su CentOS

Come installare Docker su Linux Mint 20

Come installare e utilizzare Docker Compose su Ubuntu 20.04

Come installare e utilizzare Docker Compose su Ubuntu 22.04

Come installare Docker Compose su Ubuntu

Come installare Docker su Rocky Linux e AlmaLinux

Come installare e utilizzare Docker su Ubuntu 20.04