Inštalácia Docker a Compose na CentOS 8 | RHEL 8


V tomto návode vás prevedieme krokmi inštalácie Docker CE na CentOS 8 | RHEL 8. Tiež si ukážeme, ako nainštalovať Docker Compose na RHEL 8/CentOS 8 Linux. Docker nie je oficiálne podporovaný na RHEL 8, pretože bol nahradený nástrojmi Red Hat – buildah a podman. Viac sa môžete dozvedieť o nových funkciách, ktoré sú súčasťou vydania RHEL 8 Linux.

  • Nové funkcie a recenzia Red Hat Enterprise Linux 8 (RHEL 8)

Ale čo ak používate Docker každý deň a nemôžete okamžite prejsť na buildah a podman? Nebojte sa, pretože existuje spôsob, ako nainštalovať Docker a Docker Compose na RHEL 8/CentOS 8. Docker je nástroj, ktorý vám umožňuje vytvárať, nasadzovať a spúšťať vaše aplikácie v kontajneroch. Kontajnery umožňujú vývojárovi zabaliť aplikáciu so všetkými jej závislosťami a odoslať ju ako jeden balík. Kontajnery sa často používajú v prostrediach mikroservisov.

Komponenty/Terminológia Dockeru

Existuje množstvo špecifického žargónu Dockeru, ktorý musíme objasniť pred tým, ako sa pustíme do inštalácie a ukážok použitia. Nižšie sú bežne používané termíny v ekosystéme Docker.

  • Docker démon: Tento sa nazýva aj Docker Engine, je to proces na pozadí, ktorý beží na hostiteľskom systéme a je zodpovedný za vytváranie a spúšťanie kontajnerov.
  • Docker Klient: Toto je nástroj príkazového riadku, ktorý používateľ používa na interakciu s démonom Docker.
  • Docker image: Image je nemenný súbor, ktorý je v podstate snímkou kontajnera. Docker image má súborový systém a závislosti aplikácií potrebné na spustenie aplikácií.
  • Kontajner Docker: Toto je bežiaca inštancia docker image s aplikáciou a jej závislosťami. Každý kontajner má jedinečné ID procesu a je izolovaný od ostatných kontajnerov. Jediná vec, ktorú kontajnery zdieľajú, je jadro.
  • Docker registry: Toto je aplikácia zodpovedná za správu ukladania a doručovania Docker obrazov kontajnerov. Môže byť súkromná alebo verejná.

Inštalácia Docker CE na CentOS 8 | RHEL 8

Doteraz sme prebrali úvod do Dockeru a terminológiu. Mali by sme byť pripravení nainštalovať Docker CE na RHEL 8/CentOS 8. Začneme inštaláciou Dockeru a potom Docker Compose.

Sú k dispozícii dve edície Dockeru.

  • Community Edition (CE): ideálne pre jednotlivých vývojárov a malé tímy, ktoré chcú začať s Dockerom a experimentovať s aplikáciami založenými na kontajneroch.
  • Enterprise Edition (EE): Navrhnuté pre podnikový vývoj a IT tímy, ktoré vytvárajú, nasadzujú a prevádzkujú obchodne kritické aplikácie v produkcii vo veľkom meradle.

Docker Enterprise Edition vyžaduje aktívnu licenciu na používanie. V tomto návode nainštalujeme Docker CE na RHEL 8. Poďme pridať Docker repozitár predtým, než ho budeme môcť nainštalovať.

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

Tento príkaz stiahne súbor repozitára Docker do /etc/yum.repos.d/docker-ce.repo. Aktualizujme si cache RPM indexu.

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

Možno budete musieť odinštalovať všetky staršie verzie Dockeru spolu s príslušnými závislosťami. Tiež odinštalujte Podman a príslušné závislosti, ak sú už nainštalované.

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

Nakoniec nainštalujte Docker CE spustením nasledujúceho príkazu vo vašom termináli.

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

Ak narazíte na problémy so závislosťami pri Podmane, povoľte vymazanie.

sudo yum install docker-ce --allowerasing

Súhlasíte s inštaláciou stlačením klávesu y na klávesnici:

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

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

Importujte aj GPG kľúč.

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

Spustite a povoľte službu Docker, aby sa spúšťala pri štarte systému.

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

Stav služby Docker by mal uvádzať, že je spustená.

$ systemctl status  docker

Skupina docker je vytvorená, ale do skupiny nie sú pridaní žiadni používatelia. Pridajte svojho používateľa do tejto skupiny, aby ste mohli spúšťať príkazy docker bez použitia sudo.

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

Odhláste sa a znovu prihláste, aby ste mohli používať Docker bez sudo. Verziu nainštalovaného Dockeru môžete skontrolovať pomocou:

docker version

Stiahnuť Docker obraz

Posledným krokom je otestovať vašu inštaláciu stiahnutím testovacieho Docker kontajnera.

$ 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

Zoznam stiahnutých obrázkov.

$ 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

Overte, či Docker CE funguje správne spustením kontajnera Alpine z stiahnutého obrazu.

$ 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

Spustenie kontajnera 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/

Nainštalujte Docker Compose na CentOS 8 | CentOS 8

Máme nainštalovaný a spustený Docker, teraz sa poďme presunúť na Docker Compose. Docker Compose je nástroj používaný na definovanie a spúšťanie viackontajnerových Docker aplikácií.

Služby aplikácie sú nakonfigurované pomocou Compose súboru. Na rozdiel od spúšťania príkazov Docker je na vytvorenie a spustenie všetkých služieb z vašej konfigurácie potrebný len jediný príkaz. Docker Compose je skvelý nástroj pre vývoj, testovanie a stagingové prostredia, ako aj pre CI pracovné postupy.

Postupujte podľa našej samostatnej príručky na inštaláciu najnovšieho Docker Compose na Linuxe.

  • Nainštalujte Docker Compose na Linux

Aby sme tento návod udržali stručný, nebudeme sa zaoberať používaním Docker Compose. Odporúčam vám prejsť si oficiálnu dokumentáciu Dockeru a dokumentáciu Docker Compose, aby ste sa dozvedeli viac.

Nainštalovať Docker UI – Voliteľné

Ak potrebujete rozhranie Docker na správu, ktoré vám umožní jednoducho spravovať rôzne Docker hostiteľa a kontajnery, skúste Portainer. Je ľahké ho nainštalovať a používať.

  • Ako nainštalovať správcu rozhrania Portainer pre Docker

Monitorovanie Docker kontajnerov

Monitorovanie Docker kontajnerov je možné dosiahnuť pomocou monitorovacích nástrojov, ako sú Netdata, Ctop alebo Prometheus a Grafana. Nižšie uvedené návody by mali byť užitočné.

  • Ctop – príkaz Top pre metriky kontajnerov
  • Ako nainštalovať Netdata na RHEL 8/CentOS 8
  • Nainštalujte Docker register Harbor na Linux