Docker zrewolucjonizował wdrożenia serwerowe umożliwiając izolowanie aplikacji w lekkie, przenośne, samowystarczalne jednostki zwane kontenerami. Niezależnie od tego jaki jest twój podstawowy system operacyjny, kontener Docker uruchamia się dokładnie tak samo.
Jednakże, wiele domyślnych repozytoriów (jak te wbudowane w RHEL, AlmaLinux, CentOS i Rocky Linux) często wskazuje na Podman zamiast Dockera, lub hostują poważnie nieaktualne wersje Docker Engine. Aby zagwarantować dostęp do najnowszych funkcji bezpieczeństwa i zintegrowanej docker-compose-plugin, musisz pobrać go bezpośrednio z oficjalnego źródła Docker.
Krok 1: Usuń stare wersje
Przed zainstalowaniem oficjalnego silnika, musisz zweryfikować że żadne starsze, konfliktujące pakiety nie pozostają w systemie (nawet jeśli nigdy ich nie instalowałeś sam). Te pakiety zwykle krążą wokół nazw docker lub docker-engine.
Uruchom to polecenie aby wyczyścić planszę gładko:

sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
Jest w porządku jeśli dnf zgłasza że żaden z tych pakietów nie jest zainstalowany.
Krok 2: Skonfiguruj repozytorium Docker
Musisz powiedzieć swojemu menedżerowi pakietów (dnf) dokładnie gdzie znaleźć oficjalne wydania Docker. Docker dostarcza wygodne narzędzie konfiguracyjne natywnie wspierane przez systemy RHEL poprzez pakiet yum-utils.
Zainstaluj narzędzia:

sudo dnf install -y yum-utils
Teraz użyj yum-config-manager aby bezpiecznie dodać oficjalne repozytorium Docker do źródeł systemowych:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(Nawet jeśli jesteś na AlmaLinux, Rocky Linux lub Fedorze, przekazanie ścieżki /centos/ jest poprawne, ponieważ dzielą one absolutnie dokładnie tę samą architekturę binarną dla Enterprise Linux).
Krok 3: Zainstaluj Docker Engine
Z repozytorium bezpiecznie dodanym, twój system wie gdzie szukać. Możesz teraz zainstalować cały pakiet Docker.
To polecenie instaluje podstawowy silnik (docker-ce), interfejs wiersza poleceń (docker-ce-cli), runtime kontenera (containerd.io) i nowoczesne wtyczki jak Docker Compose V2 (docker-compose-plugin).

sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Krok 4: Uruchom i włącz Docker
W przeciwieństwie do Ubuntu, które automatycznie uruchamia usługi natychmiast po pobraniu ich, dystrybucje rodziny RHEL wolą abyś je celowo uruchamiał.
Musisz uruchomić demona Docker i włączyć go tak aby bezpiecznie budził się za każdym razem gdy serwer restartuje. Możesz zrobić oba w jednym poleceniu systemctl:

sudo systemctl enable --now docker
Aby potwierdzić że usługa żyje, sprawdź status:

sudo systemctl status docker
Szukaj jasnozielonego tekstu "active (running)".
Krok 5: Zweryfikuj instalację
Aby bezsprzecznie udowodnić że Docker może pomyślnie pobierać obrazy z internetu i uruchamiać je w działające kontenery, użyj standardowego ładunku testowego:

sudo docker run hello-world
Jeśli twoja konfiguracja jest poprawna, kontener zostanie pobrany, uruchomi swój kod i wyświetli duży blok potwierdzenia zaczynający się od:
"Hello from Docker! This message shows that your installation appears to be working correctly."
[!NOTE]
Docker i twoja zapora: Docker zarządza swoimi własnymi regułami sieciowymi bezpośrednio przeziptables. Podczas gdy systemy RedHat używająfirewalld, który jest generalnie bardziej zintegrowany z Docker niż UFW, wciąż najlepszą praktyką jest ostrożność przy eksponowaniu portów poprzez flagę-plub--publish. Zawsze weryfikuj otwarte porty za pomocąsudo firewall-cmd --list-all.
Krok 6 (Opcjonalny): Uruchom Docker bez sudo
Prawdopodobnie zauważyłeś że musiałeś wpisać sudo aby uruchomić skrypt testowy. Domyślnie demon Docker wiąże się z gniazdem Unix zamiast portem TCP, a to gniazdo jest własnością użytkownika root.
Jeśli stworzyłeś swoje własne konto użytkownika (jak opisano w naszym Przewodniku Zarządzania Użytkownikami), wpisywanie sudo setki razy dziennie może być męczące. Możesz nadać swojemu użytkownikowi natywne prawa Docker dodając ich do grupy docker.
sudo usermod -aG docker $USER
Ostrzeżenie: Grupa docker nadaje uprawnienia które są funkcjonalnie równoważne dostępowi root. Dodawaj tylko bardzo zaufanych użytkowników do tej grupy.
Aby zmusić system do uznania twojego nowego statusu grupy bez potrzeby całkowitego wylogowania:
su - $USER
Teraz ponownie uruchom test bez prefiksu sudo:
docker run hello-world
Jeśli to działa, gratulacje! Twój VPS jest w pełni wyposażony do wdrażania nieskończonej liczby wstępnie spakowanych aplikacji kontenerowych dostępnych na Docker Hub natywnie i bezpiecznie.
Dla niezawodnego środowiska wspierającego szybkie prototypowanie projektów z Docker, sprawdź naszą wysokowydajną linię przystępnych środowisk Budget VPS już dziś.