Instalacja Dockera w systemie Linux: Ubuntu, Debian, RHEL | INTROSERV
EUR
european

EUR

usa

USD

Poland Pl
Ex. VAT Ex. VAT 0%

Instalacja Dockera w popularnych dystrybucjach Linuksa: poradnik instalacji Dockera w systemie Linux

Poziom: Średnio zaawansowany
Szacowany czas: ok. 15 minut
Cel: Skonfigurować bezpieczne, zdecentralizowane środowisko, instalując Dockera do samodzielnego hostowania usług osobistych, takich jak Nextcloud, Bitwarden i Matrix.

Wprowadzenie

Samodzielne hostowanie usług „chmurowych” gwarantuje prywatność i pełną własność danych. Aby wdrożyć usługi takie jak Nextcloud (przechowywanie plików), Bitwarden (zarządzanie hasłami) czy Matrix (bezpieczna komunikacja) bez zmagania się ze skomplikowanymi zależnościami na poziomie hosta, potrzebne są odizolowane środowiska. W tym poradniku pokażemy, jak zainstalować Dockera w Linuksie, aby zbudować solidny, odtwarzalny fundament dla self-hostingu. Niezależnie od tego, czy potrzebujesz pełnej konfiguracji Dockera w Linuksie dla pojedynczego serwera, czy dla całej floty, każdy z poniższych kroków dotyczy Ubuntu, Debiana i dystrybucji zgodnych z RHEL. Po przejściu przez ten poradnik instalacji Dockera w Linuksie uzyskasz gotowe do produkcji środowisko skonfigurowane z domyślnymi ustawieniami bezpieczeństwa zgodnymi z dobrymi praktykami.

Terminologia

Zanim przejdziesz dalej, upewnij się, że rozumiesz poniższe podstawowe pojęcia:

  • Docker: platforma do tworzenia, dostarczania i uruchamiania aplikacji w izolowanych środowiskach.
  • Docker Engine: podstawowa technologia klient-serwer, która tworzy i uruchamia kontenery.
  • Kontener (Container): ustandaryzowany, wykonywalny komponent łączący kod źródłowy aplikacji z bibliotekami systemu operacyjnego i zależnościami potrzebnymi do jej uruchomienia.
  • Obraz (Image): szablon tylko do odczytu z instrukcjami tworzenia kontenera.
  • Demon Dockera (Docker daemon): usługa działająca w tle na hoście, która zarządza budowaniem, uruchamianiem i dystrybucją kontenerów.
  • Docker CLI: interfejs wiersza poleceń służący do komunikacji z demonem.
  • Docker Hub: publiczny rejestr utrzymywany przez Docker do wyszukiwania i udostępniania obrazów kontenerów.
  • Rejestr (Registry): system przechowywania i dystrybucji obrazów kontenerów.
  • Instalacja: proces przygotowania programów do uruchomienia.
  • Menedżer pakietów: narzędzie, które automatyzuje instalowanie, aktualizowanie, konfigurowanie i usuwanie programów.
  • Repozytorium: centralne miejsce, w którym przechowywane i utrzymywane są pakiety oprogramowania.
  • Oficjalne repozytorium Dockera: zaufane źródło utrzymywane przez Docker, z którego pobiera się stabilne pakiety oprogramowania.
  • Pakiet: skompresowane archiwum plików zawierające wszystkie pliki dostarczane z daną aplikacją.
  • Zależność: program lub biblioteka wymagane przez inny program do prawidłowego działania.
  • Wydanie stabilne (Stable release): wersja oprogramowania, która została gruntownie przetestowana i jest uznawana za niezawodną w środowisku produkcyjnym.
  • Wersja: unikalny stan oprogramowania odzwierciedlający jego konkretne funkcje i poprawki.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że spełnione są następujące warunki:

  • System operacyjny: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 lub dystrybucja zgodna z RHEL (AlmaLinux, Rocky, RHEL) 8/9/10
  • Dostęp: dostęp sudo lub root do serwera
  • Wymagana wiedza: swobodne posługiwanie się wierszem poleceń Linuksa

Krok 1: Konfiguracja repozytorium Dockera

Aby uzyskać najnowsze, bezpieczne i stabilne wydanie, zawsze korzystaj z oficjalnego repozytorium Dockera, a nie z domyślnych repozytoriów systemu operacyjnego.

Dla Ubuntu:

Najpierw zaktualizuj indeks menedżera pakietów Linuksa i zainstaluj pakiety wymagane, aby apt mógł korzystać z repozytorium przez HTTPS:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Dodaj oficjalny klucz GPG Dockera:

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Skonfiguruj repozytorium stabilne:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Dla Debiana:

Kroki służące do instalacji Dockera w Debianie odpowiadają procedurze dla Ubuntu, ale wskazują adres URL repozytorium właściwy dla Debiana. Najpierw zaktualizuj indeks menedżera pakietów Linuksa i zainstaluj wymagane pakiety:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Dodaj oficjalny klucz GPG Dockera:

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Skonfiguruj repozytorium stabilne:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Dla dystrybucji zgodnych z RHEL (AlmaLinux, Rocky, RHEL):

Zainstaluj pakiet yum-utils i skonfiguruj repozytorium stabilne:

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

Info

Docker publikuje pakiety dla wszystkich dystrybucji zgodnych z RHEL (w tym AlmaLinux i Rocky Linux) pod ścieżką repozytorium centos. Użycie tego adresu URL jest zamierzone i w pełni wspierane.

Wynik: Repozytorium Dockera zostało dodane do systemu, dzięki czemu menedżer pakietów może pobierać najnowsze pakiety Dockera.

Krok 2: Instalacja Dockera w Ubuntu i Debianie

Po skonfigurowaniu repozytorium Dockera przejdź do instalacji Docker Engine w Ubuntu (lub Debianie - polecenia są identyczne). Ten krok dotyczy obu dystrybucji.

Najpierw usuń wszelkie kolidujące pakiety dostarczane przez repozytoria systemu operacyjnego:

sudo apt remove docker.io podman-docker containerd runc

Ponownie zaktualizuj indeks pakietów apt i za pomocą menedżera pakietów Linuksa zainstaluj wymagane komponenty:

sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Wynik: Polecenie zostaje wykonane i pobiera z repozytorium Dockera pakiety wraz z wszystkimi wymaganymi zależnościami. Menedżer pakietów powinien zakończyć instalację Docker Engine bez błędów.

Info

docker-ce oznacza Docker Community Edition, czyli bezpłatną wersję idealną dla osób hostujących usługi samodzielnie.

Krok 3: Instalacja Dockera w dystrybucjach zgodnych z RHEL (AlmaLinux, Rocky, RHEL)

W systemach opartych na RHEL do instalacji Docker Engine użyj yum.

Najpierw usuń wszelkie kolidujące pakiety dostarczane przez repozytoria systemu operacyjnego:

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

Uruchom następujące polecenie:

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

Wynik: Menedżer pakietów instaluje niezbędne pakiety. Zostaniesz poproszony o zaakceptowanie klucza GPG (chyba że użyjesz flagi -y); potwierdź go. Po zakończeniu zobaczysz komunikat o powodzeniu.

Krok 4: Weryfikacja instalacji Docker Engine

Po instalacji zachowanie demona Dockera zależy od dystrybucji. W Ubuntu i Debianie docker.service uruchamia się automatycznie po instalacji. W dystrybucjach z rodziny RHEL tak się nie dzieje.

Warning

Tylko rodzina RHEL: jeśli proces instalacji zaktualizował jądro (na przykład poprzez zależność kernel-core), uruchom serwer ponownie przed startem usługi Docker:

sudo reboot

Pominięcie tego kroku może spowodować, że systemctl start docker zakończy się błędami br_netfilter / addrtype, ponieważ działające jądro nie odpowiada już zainstalowanym modułom.

Gdy serwer działa już na aktualnym jądrze, uruchom i włącz usługę. Poniższe polecenia są idempotentne i bezpieczne do uruchomienia w każdym systemie:

sudo systemctl start docker sudo systemctl enable docker

Wynik: Demon Dockera zostaje uruchomiony, a system tworzy dowiązanie symboliczne, aby uruchamiał się automatycznie po każdym restarcie.

Sprawdź, czy instalacja Docker Engine zakończyła się powodzeniem, uruchamiając obraz hello-world:

sudo docker run hello-world

Wynik: Docker CLI łączy się z demonem Dockera, pobiera obraz hello-world z Docker Hub i uruchamia kontener. W terminalu powinien pojawić się komunikat „Hello from Docker!”.

Krok 5: Czynności po instalacji Dockera

Domyślnie uruchamianie poleceń Dockera wymaga sudo. Aby uruchamiać je jako użytkownik bez uprawnień root, musisz dodać swojego użytkownika do grupy docker. To podstawowe czynności po instalacji Dockera, które ułatwiają wygodne zarządzanie własną infrastrukturą.

Utwórz grupę docker (jeśli jeszcze nie istnieje):

getent group docker || sudo groupadd docker

Dodaj swojego użytkownika do grupy docker:

sudo usermod -aG docker $USER

Wynik: Użytkownik zostaje dodany do grupy. Aby zmiany zaczęły obowiązywać, musisz się wylogować i zalogować ponownie albo aktywować nowe członkostwo w grupie w bieżącej sesji:

newgrp docker

Info

newgrp docker tworzy nową powłokę z zaktualizowanym członkostwem w grupach. Każde polecenie docker uruchomione później będzie działać bez sudo, ale tylko w tej nowej powłoce. Otwarcie kolejnego terminala nadal wymaga pełnego ponownego zalogowania.

Warning

Członkostwo w grupie docker daje uprawnienia równoważne dostępowi root do hosta. W środowiskach self-hostingu, w których priorytetem jest bezpieczeństwo, rozważ uruchamianie Dockera w trybie rootless (zob. Krok 6).

Po wykonaniu newgrp docker (lub po wylogowaniu i ponownym zalogowaniu) przetestuj konfigurację, uruchamiając polecenie bez sudo:

docker run hello-world

Wynik: Powinieneś ponownie zobaczyć komunikat „Hello from Docker!”, co potwierdza, że czynności po instalacji Dockera zakończyły się powodzeniem.

Alternatywa: szybka instalacja za pomocą skryptu pomocniczego

W środowiskach testowych lub deweloperskich Docker udostępnia skrypt pomocniczy (convenience script).

Warning

Ta metoda nie jest zalecana w środowisku produkcyjnym. Działa bez przypinania wersji, wykonuje bezwarunkową aktualizację, jeśli Docker jest już zainstalowany, i pobiera wszystkie zależności bez weryfikacji.

Zaleca się pobranie skryptu i sprawdzenie go przed uruchomieniem:

curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh

Krok 6 (opcjonalny): Uruchamianie Dockera w trybie rootless

W środowiskach self-hostingu uruchamianie Dockera w trybie rootless zwiększa bezpieczeństwo, ponieważ demon Dockera i kontenery działają jako użytkownik bez uprawnień root.

6.1 Wymagania wstępne

Najpierw zatrzymaj i wyłącz ogólnosystemową usługę oraz gniazdo (socket) Dockera, a następnie usuń plik gniazda:

sudo systemctl stop docker.service docker.socket sudo systemctl disable docker.service docker.socket sudo rm -f /var/run/docker.sock

Sprawdź, czy dla Twojego użytkownika skonfigurowano subuid i subgid (zwykle dzieje się to automatycznie):

cat /etc/subuid cat /etc/subgid

Włącz lingering dla swojego użytkownika, aby demon mógł uruchamiać się przy starcie systemu:

sudo loginctl enable-linger $USER

6.2 Instalacja dodatkowych pakietów

Dla Ubuntu/Debiana:

sudo apt install docker-ce-rootless-extras uidmap dbus-user-session

Dla AlmaLinux/RHEL (shadow-utils dostarcza uidmap i zwykle jest już zainstalowany):

sudo yum install docker-ce-rootless-extras

6.3 Instalacja demona rootless

Uruchom skrypt instalacyjny z pełnej sesji logowania docelowego użytkownika (nie z sudo su ani z powłoki SSH bez logowania). Jeśli pracujesz w kontekście bez logowania, najpierw wyeksportuj wymagane zmienne:

export XDG_RUNTIME_DIR=/run/user/$(id -u) export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus

Następnie uruchom skrypt instalacyjny:

dockerd-rootless-setuptool.sh install

Info

Pierwsze uruchomienie skryptu instalacyjnego tuż po włączeniu lingeringu może być niestabilne. Jeśli demon się nie uruchomi, po prostu uruchom skrypt instalacyjny ponownie.

6.4 Konfiguracja zmiennych środowiskowych

Dodaj poniższe zmienne do pliku konfiguracyjnego powłoki (np. ~/.bashrc):

export PATH=/usr/bin:$PATH export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock

Załaduj plik (source) lub uruchom powłokę ponownie, aby zastosować zmiany.

6.5 Ograniczenia trybu rootless

  • Nie można publikować portów < 1024 (Docker oferuje obejścia, takie jak setcap, przekierowanie portów slirp4netns lub routing).
  • Brak obsługi --net=host.
  • Tryb Swarm i sieci overlay nie są obsługiwane.
  • AppArmor nie jest obsługiwany.
  • Flaga --privileged nie przyznaje dostępu root na poziomie hosta.
  • Dane są przechowywane w ~/.local/share/docker (należy to uwzględnić przy kopiach zapasowych i limitach).
  • Wymaga cgroup v2.
  • Używa sterownika magazynu overlayfs zamiast overlay2.

Wycofanie zmian (rollback)

Jeśli chcesz cofnąć instalację Dockera w Linuksie - zarówno standardową, jak i w trybie rootless - wykonaj poniższe kroki w podanej kolejności.

1. Wycofanie trybu rootless (pomiń, jeśli nie był skonfigurowany):

Jeśli skonfigurowano tryb rootless, najpierw cofnij te zmiany, a dopiero potem usuwaj pakiety:

dockerd-rootless-setuptool.sh uninstall rm -rf ~/.local/share/docker sudo loginctl disable-linger $USER

Info

Odinstalowanie trybu rootless po usunięciu pakietów (purge) zakończy się niepowodzeniem, ponieważ skrypt instalacyjny jest częścią pakietu docker-ce-rootless-extras. Zawsze odinstalowuj tryb rootless, dopóki pakiety są jeszcze obecne.

2. Usunięcie pakietów:

Debian/Ubuntu:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.gpg

AlmaLinux/Rocky/RHEL:

sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/yum.repos.d/docker-ce.repo

3. Usunięcie grupy:

sudo groupdel docker || true

Warning

Usunięcie pakietów nie powoduje automatycznego usunięcia obrazów, kontenerów, woluminów ani zmodyfikowanych plików konfiguracyjnych. Polecenia rm -rf trwale usuwają te katalogi z danymi.

Podsumowanie

Twoja instalacja Dockera w Linuksie jest ukończona i zweryfikowana. Fundament został bezpiecznie przygotowany. Możesz teraz wdrażać kontenery dla swoich samodzielnie hostowanych narzędzi, zachowując pełną kontrolę nad plikami w Nextcloud, sejfami Bitwarden i komunikacją w Matrix.

Wersja dokumentu: 1.0
Ostatnia aktualizacja: maj 2026
Właściciel: Zespół dokumentacji technicznej

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA