Instalarea Docker și Compose pe CentOS 8 | RHEL 8


În acest ghid, vă vom ghida prin pașii de instalare a Docker CE pe CentOS 8 | RHEL 8. De asemenea, vom acoperi modul de instalare a Docker Compose pe Linux RHEL 8/CentOS 8. Docker nu este acceptat oficial pe RHEL 8, deoarece a fost înlocuit cu instrumentele Red Hat – buildah și podman. Puteți afla mai multe despre noile funcționalități disponibile în lansarea RHEL 8 Linux.

  • Red Hat Enterprise Linux 8 (RHEL 8) Caracteristici Noi și Recenzie

Dar ce se întâmplă dacă folosești Docker în fiecare zi și nu poți trece imediat la buildah și podman? Nu-ți face griji, deoarece există o metodă de a instala Docker și Docker Compose pe RHEL 8/CentOS 8. Docker este un instrument care îți permite să creezi, să implementezi și să rulezi aplicațiile în containere. Containerele permit unui dezvoltator să împacheteze o aplicație împreună cu dependențele ei și să o trimită ca un singur pachet. Containerele sunt adesea utilizate în medii cu Microservicii.

Componente Docker/Terminologie

Există o serie de termeni specifici Docker pe care trebuie să îi clarificăm înainte de a trece la exemple de instalare și utilizare. Mai jos sunt prezentate termenologiile folosite frecvent în ecosistemul Docker.

  • Demonul Docker: Acesta mai este numit și Motorul Docker, este un proces de fundal care rulează pe sistemul gazdă și este responsabil pentru crearea și rularea containerelor.
  • Docker Client: Acesta este un instrument de linie de comandă folosit de utilizator pentru a interacționa cu daemon-ul Docker.
  • Imagine Docker: O imagine este un fișier imuabil care este, practic, o instantanee a unui container. O imagine Docker are un sistem de fișiere și dependențele aplicației necesare pentru rularea aplicațiilor.
  • Container Docker: Aceasta este o instanță activă a unei imagini Docker care conține o aplicație și dependențele sale. Fiecare container are un ID de proces unic și este izolat de celelalte containere. Singurul lucru pe care containerele îl împărtășesc este Kernel-ul.
  • Registry Docker: Aceasta este o aplicație responsabilă pentru gestionarea stocării și livrării imaginilor de containere Docker. Poate fi privată sau publică.

Instalează Docker CE pe CentOS 8 | RHEL 8

Până acum am acoperit introducerea în Docker și terminologia acestuia. Ar trebui să fim pregătiți să instalăm Docker CE pe RHEL 8/CentOS 8. Vom începe cu instalarea Docker, apoi Docker Compose.

Există două ediții de Docker disponibile.

  • Community Edition (CE): ideal pentru dezvoltatori individuali și echipe mici care doresc să înceapă cu Docker și să experimenteze aplicații bazate pe containere.
  • Ediția Enterprise (EE): Concepută pentru dezvoltarea la nivel de întreprindere și pentru echipele IT care creează, livrează și rulează aplicații critice pentru afaceri în producție la scară largă.

Docker Enterprise Edition necesită o licență activă pentru a fi utilizată. În acest ghid, vom instala Docker CE pe RHEL 8. Să adăugăm depozitul Docker înainte de a-l putea instala.

### 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

Această comandă va descărca fișierul de depozit Docker în /etc/yum.repos.d/docker-ce.repo. Hai să actualizăm cache-ul indexului 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.

Este posibil să fie necesar să dezinstalați toate versiunile mai vechi de Docker împreună cu dependențele asociate. De asemenea, dezinstalați Podman și dependențele asociate dacă sunt deja instalate.

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

În cele din urmă, instalează Docker CE rulând comanda de mai jos în terminalul tău.

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

Dacă întâmpini probleme de dependență cu Podman, permite ștergerea.

sudo yum install docker-ce --allowerasing

Acceptați instalarea apăsând tasta y de pe tastatură:

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

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

Importați și cheia 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

Porniți și activați serviciul Docker pentru a porni la pornirea sistemului.

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

Starea serviciului Docker ar trebui să indice că rulează.

$ systemctl status  docker

Grupul docker este creat, dar nu sunt adăugați utilizatori în grup. Adaugă-ți utilizatorul în acest grup pentru a rula comenzile docker fără sudo

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

Deconectați-vă și reconectați-vă pentru a folosi Docker fără sudo. Versiunea instalată de Docker poate fi verificată cu:

docker version

Trage imaginea Docker

Ultimul pas este să testezi instalarea descărcând un container docker de test.

$ 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

Listează imaginile descărcate.

$ 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ți dacă Docker CE funcționează corect rulând containerul Alpine din imaginea descărcată.

$ 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

Rulează containerul 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/

Instalează Docker Compose pe CentOS 8 | CentOS 8

Avem Docker instalat și funcționând, să trecem acum la Docker Compose. Docker Compose este un instrument folosit pentru a defini și rula aplicații Docker cu mai multe containere.

Serviciile aplicației sunt configurate folosind un fișier Compose. Spre deosebire de rularea comenzilor Docker, este necesară doar o singură comandă pentru a crea și porni toate serviciile din configurația ta. Docker Compose este un instrument excelent pentru medii de dezvoltare, testare și staging, precum și pentru fluxuri de lucru CI.

Urmărește ghidul nostru separat pentru instalarea celei mai recente versiuni de Docker Compose pe Linux.

  • Instalează Docker Compose pe Linux

Pentru a păstra acest ghid concis, nu vom intra în detalii despre utilizarea Docker Compose. Îți recomand să parcurgi documentația oficială Docker și documentația Docker Compose pentru a învăța mai multe.

Instalează interfața Docker – Opcțional

Dacă ai nevoie de o interfață de gestionare Docker care să-ți permită să gestionezi ușor diferiții tăi gazde și containere Docker, încearcă Portainer. Este ușor de instalat și de utilizat.

  • Cum să instalezi managerul UI Portainer pentru Docker

Monitorizarea containerelor Docker

Monitorizarea containerelor Docker poate fi realizată folosind instrumente de monitorizare precum Netdata sau Ctop sau Prometheus și Grafana. Ghidurile de mai jos ar trebui să fie utile.

  • Ctop – Comanda top pentru metrici container
  • Cum să instalezi Netdata pe RHEL 8/CentOS 8
  • Instalează registrul Harbor Docker pe Linux