Podstawy Docker #2: Instalacja Docker i Docker Compose

Czas zainstalować Dockera na serwerze. W tym poradniku przejdziesz przez instalację Docker Engine i Docker Compose na Ubuntu/Debian — krok po kroku, z oficjalnego repozytorium.

Przed instalacją

Upewnij się, że:

  • Masz serwer z Ubuntu 22.04+ lub Debian 12+
  • Jesteś zalogowany jako użytkownik z uprawnieniami sudo
  • Serwer ma dostęp do internetu

⚠️ Nie instaluj z domyślnego repo systemowego

Pakiet docker.io dostępny przez apt install docker.io to starsza wersja. Zawsze instaluj z oficjalnego repozytorium Docker — dostajesz najnowszą wersję i aktualizacje bezpieczeństwa.

⚠️ Docker a firewall (ufw)

Jeśli używasz ufw — uwaga: gdy wystawiasz porty kontenerów (-p), Docker omija reguły ufw. Porty kontenerów będą dostępne z zewnątrz nawet jeśli ufw je blokuje. Dzieje się tak, bo Docker tworzy własne reguły w iptables, które mają wyższy priorytet niż ufw.

Krok 1: Usuń stare wersje (jeśli są)

sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc

💡 Błędy to normalne

Jeśli zobaczysz komunikaty typu „package not found” — to normalne. Oznacza to, że dany pakiet nie był zainstalowany. Kontynuuj dalej.

Krok 2: Zainstaluj wymagane pakiety i dodaj klucz GPG

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings

Ubuntu:

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Debian:

sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Krok 3: Dodaj repozytorium Docker

Ubuntu:

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF

Debian:

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update

Krok 4: Zainstaluj Docker Engine

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

To instaluje:

  • docker-ce — Docker Engine
  • docker-ce-cli — komendy docker w terminalu
  • containerd.io — runtime kontenerów
  • docker-buildx-plugin — budowanie obrazów
  • docker-compose-plugin — Docker Compose v2

Krok 5: Weryfikacja

docker --version

Powinieneś zobaczyć coś jak:

Docker version 27.x.x, build xxxxxxx

Sprawdź czy usługa działa:

sudo systemctl status docker

Uruchom testowy kontener:

sudo docker run hello-world

Jeśli widzisz komunikat „Hello from Docker!” — instalacja się udała.

Krok 6: Dodaj użytkownika do grupy docker

Domyślnie Docker wymaga sudo przy każdej komendzie. Żeby tego uniknąć, dodaj swojego użytkownika do grupy docker:

sudo usermod -aG docker $USER

⚠️ Wymagane przelogowanie

System wczytuje uprawnienia grup tylko przy logowaniu. Musisz się wylogować i zalogować ponownie:

exit

Potem połącz się ponownie przez SSH. Po przelogowaniu sprawdź:

docker run hello-world

Krok 7: Autostart Docker

Docker powinien uruchamiać się automatycznie po restarcie serwera. Sprawdź:

sudo systemctl is-enabled docker

Jeśli wynik to enabled — wszystko OK. Jeśli nie:

sudo systemctl enable docker

Docker Compose

Docker Compose v2 zainstalował się razem z Docker Engine (pakiet docker-compose-plugin). Sprawdź:

docker compose version

Wynik:

Docker Compose version v2.x.x

Gdyby docker compose version zwróciło błąd, doinstaluj ręcznie:

sudo apt install -y docker-compose-plugin

Compose v1 vs v2

Cecha v1 (stary) v2 (nowy)
Komenda docker-compose (z myślnikiem) docker compose (ze spacją)
Instalacja Osobny program (Python) Plugin do Docker Engine
Status Przestarzały (EOL) Aktualny — używaj tego

⚠️ Używaj v2

Jeśli trafisz na tutorial z docker-compose (z myślnikiem) — zamień na docker compose (ze spacją). Stara wersja nie jest już rozwijana.

Rozwiązywanie problemów

„Permission denied” przy docker run

Nie dodałeś użytkownika do grupy docker lub nie przelogowałeś się. Sprawdź:

groups

Jeśli nie widzisz docker na liście — wykonaj ponownie krok 6 i przeloguj się.

„Cannot connect to the Docker daemon”

Docker nie jest uruchomiony:

sudo systemctl start docker
sudo systemctl status docker

Konflikt portów

Jeśli inna aplikacja zajmuje port, Docker nie uruchomi kontenera na tym porcie. Sprawdź kto zajmuje port (np. 80):

sudo ss -tlnp | grep :80

Podsumowanie

Co Komenda
Wersja Docker docker --version
Wersja Compose docker compose version
Test docker run hello-world
Status usługi sudo systemctl status docker
Autostart sudo systemctl enable docker
Grupa docker sudo usermod -aG docker $USER

📚 Podstawy Docker — przewodnik

Podstawy Docker #1: Czym jest Docker | Następny → Podstawy Docker #3: Podstawowe komendy

Roman Rozenberger
Roman Rozenberger

Jestem digital marketerem ze specjalizacją w marketingu w wyszukiwarkach internetowych. Wdrażam automatyzacje z wykorzystaniem narzędzi LowCode, NoCode i AI. Identyfikuje procesy i rozwiązuję problemy.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *