Ricerca nel sito web

Installare Docker e Compose su CentOS 8 | RHEL 8


In questa guida ti guideremo attraverso i passaggi per installare Docker CE su CentOS 8 | RHEL 8. Tratteremo anche come installare Docker Compose su Linux RHEL 8/CentOS 8. Docker non è ufficialmente supportato su RHEL 8 poiché è stato sostituito con gli strumenti Red Hat – buildah e podman. Puoi saperne di più sulle nuove funzionalità presenti nel rilascio di RHEL 8 Linux.

  • Red Hat Enterprise Linux 8 (RHEL 8) Nuove Funzionalità e Recensione

Ma cosa succede se usi Docker ogni singolo giorno e non puoi passare immediatamente a buildah e podman? Non preoccuparti, perché c'è un modo per installare Docker e Docker Compose su RHEL 8/CentOS 8. Docker è uno strumento che ti permette di creare, distribuire ed eseguire le tue applicazioni nei container. I container consentono a uno sviluppatore di pacchettizzare un'applicazione con le sue dipendenze e distribuirla come un unico pacchetto. I container sono spesso utilizzati negli ambienti di Microservizi.

Componenti/Terminologia di Docker

Esiste una serie di gerghi specifici di Docker che dobbiamo chiarire prima di entrare negli esempi di installazione e utilizzo. Di seguito sono riportate le terminologie comunemente usate nell'ecosistema Docker.

  • Daemon di Docker: Questo è anche chiamato Docker Engine, è un processo in background che gira sul sistema host responsabile della creazione e dell'esecuzione dei container.
  • Docker Client: Questo è uno strumento da riga di comando usato dall'utente per interagire con il demone Docker.
  • Immagine Docker: Un'immagine è un file immutabile che è fondamentalmente un'istantanea di un container. Un'immagine Docker ha un file system e le dipendenze dell'applicazione necessarie per eseguire le applicazioni.
  • Container Docker: Questa è un'istanza in esecuzione di un'immagine Docker con un'applicazione e le sue dipendenze. Ogni container ha un ID processo unico ed è isolato dagli altri container. L'unica cosa che i container condividono è il Kernel.
  • Registro Docker: Questa è un'applicazione responsabile della gestione dello storage e della distribuzione delle immagini dei container Docker. Può essere privata o pubblica.

Installare Docker CE su CentOS 8 | RHEL 8

Finora abbiamo trattato l'introduzione a Docker e le terminologie. Dovremmo essere pronti per installare Docker CE su RHEL 8/CentOS 8. Inizieremo con l'installazione di Docker e poi di Docker Compose.

Sono disponibili due edizioni di Docker.

  • Community Edition (CE): ideale per sviluppatori individuali e piccoli team che vogliono iniziare con Docker e sperimentare con applicazioni basate su container.
  • Enterprise Edition (EE): Progettato per lo sviluppo aziendale e i team IT che creano, distribuiscono e gestiscono applicazioni critiche per il business in produzione su larga scala.

La Docker Enterprise Edition richiede una licenza attiva per l'utilizzo. In questa guida, installeremo Docker CE su RHEL 8. Aggiungiamo il repository di Docker prima di poterlo installare.

### CentOS 8 ###
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

### RHEL 8 ###
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

Questo comando scaricherà il file del repository Docker in /etc/yum.repos.d/docker-ce.repo. Aggiorniamo la cache dell'indice RPM.

### CentOS 8 ###
$ sudo yum makecache 
CentOS Linux 8 - AppStream                                                                                                                                             23 kB/s | 4.3 kB     00:00
CentOS Linux 8 - BaseOS                                                                                                                                                20 kB/s | 3.9 kB     00:00
CentOS Linux 8 - Extras                                                                                                                                               9.2 kB/s | 1.5 kB     00:00
Docker CE Stable - x86_64                                                                                                                                             291 kB/s |  19 kB     00:00
DigitalOcean Droplet Agent                                                                                                                                             51 kB/s | 3.3 kB     00:00
Metadata cache created.

### RHEL 8 ###
$ sudo yum makecache 
Updating Subscription Management repositories.
Docker CE Stable - x86_64                                                                                                                                             14 kB/s | 3.8 kB     00:00    
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                                                                              33 kB/s | 2.8 kB     00:00    
Red Hat Ansible Engine 2.8 for RHEL 8 x86_64 (RPMs)                                                                                                                   29 kB/s | 2.4 kB     00:00    
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                                                                                 30 kB/s | 2.4 kB     00:00    
Red Hat Satellite Tools 6.6 for RHEL 8 x86_64 (RPMs)                                                                                                                  29 kB/s | 2.1 kB     00:00    
Metadata cache created.

Potrebbe essere necessario disinstallare tutte le versioni precedenti di Docker insieme alle dipendenze associate. Disinstallare anche Podman e le dipendenze associate se già installati.

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  podman \
                  runc

Infine, installa Docker CE eseguendo il comando sottostante nel tuo terminale.

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Se riscontri problemi di dipendenze con Podman, consenti la cancellazione.

sudo yum install docker-ce --allowerasing

Accetta di installare premendo il tasto y sulla tastiera:

...
Transaction Summary
================================================================================================================================================================================================
Install  12 Packages

Total download size: 93 M
Installed size: 389 M
Is this ok [y/N]: y

Importa anche la chiave GPG.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                            51 MB/s |  93 MB     00:01
Docker CE Stable - x86_64                                                                                                                                        44 kB/s | 1.6 kB     00:00
Importing GPG key 0x621E9F35:
 Userid     : "Docker Release (CE rpm) <[email >"
 Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
 From       : https://download.docker.com/linux/centos/gpg
Is this ok [y/N]: y

Avvia e abilita il servizio Docker per l'avvio all'accensione.

$ sudo systemctl enable --now docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

Lo stato del servizio Docker dovrebbe indicare in esecuzione.

$ systemctl status  docker

Il gruppo docker è stato creato, ma nessun utente è stato aggiunto al gruppo. Aggiungi il tuo utente a questo gruppo per eseguire i comandi docker senza sudo

$ sudo usermod -aG docker $USER
$ newgrp docker
$ id $USER
uid=1000(jmutai) gid=1000(jmutai) groups=1000(jmutai),10(wheel),984(docker)

Disconnettiti e accedi di nuovo per usare Docker senza sudo. La versione di Docker installata può essere verificata con:

docker version

Scarica l'immagine Docker

L'ultimo passo è testare la tua installazione scaricando un contenitore Docker di prova.

$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
8e402f1a9c57: Pull complete 
Digest: sha256:644fcb1a676b5165371437feaa922943aaf7afcfa8bfee4472f6860aad1ef2a0
Status: Downloaded newer image for alpine:latest

$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Elenca le immagini scaricate.

$ docker images
 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
 alpine              latest              5cb3aa00f899        2 days ago          5.53MB
 hello-world         latest              fce289e99eb9        2 months ago        1.84kB

Verifica che Docker CE funzioni correttamente eseguendo il container alpine dall'immagine scaricata.

$ docker run -it --rm alpine /bin/sh
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
v3.15.4-87-g89e29fdace [http://dl-cdn.alpinelinux.org/alpine/v3.15/main]
v3.15.4-87-g89e29fdace [http://dl-cdn.alpinelinux.org/alpine/v3.15/community]
OK: 9754 distinct packages available
/ # exit

Esegui contenitore Hello world

$ docker run -it --rm hello-world

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.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Installa Docker Compose su CentOS 8 | CentOS 8

Abbiamo Docker installato e in esecuzione, passiamo ora a Docker Compose. Docker Compose è uno strumento utilizzato per definire ed eseguire applicazioni Docker multi-contenitore.

I servizi dell'applicazione sono configurati utilizzando un file Compose. A differenza dell'esecuzione dei comandi docker, è sufficiente un unico comando per creare e avviare tutti i servizi dalla tua configurazione. Docker Compose è uno strumento ottimo per ambienti di sviluppo, test e staging, così come per i flussi di lavoro CI.

Segui la nostra guida separata per l'installazione dell'ultima versione di Docker Compose su Linux.

  • Installa Docker Compose su Linux

Per mantenere questa guida breve, non entreremo nell'uso di Docker Compose. Ti consiglio di consultare la documentazione ufficiale di Docker e quella di Docker Compose per saperne di più.

Installa Docker UI – Facoltativo

Se hai bisogno di un'interfaccia grafica per la gestione di Docker che ti permetta di gestire facilmente i diversi host e container Docker, prova Portainer. È facile da installare e da usare.

  • Come installare Portainer, il gestore UI di Docker

Monitoraggio dei container Docker

Il monitoraggio dei container Docker può essere effettuato utilizzando strumenti di monitoraggio come Netdata, Ctop o Prometheus e Grafana. Le guide seguenti dovrebbero essere utili.

  • Ctop – Comando top per le metriche dei container
  • Come installare Netdata su RHEL 8/CentOS 8
  • Installa il registro Docker Harbor su Linux