Nodea — logo

Docker

Docker to platforma konteneryzacji, która pozwala zapakować aplikację razem ze wszystkimi zależnościami — bibliotekami, interpreterem, konfiguracją — w lekki, przenośny kontener. Kontener uruchamia się identycznie na laptopie dewelopera, serwerze testowym i produkcji, co likwiduje klasyczny problem „u mnie działa". Od premiery w 2013 roku Docker stał się de facto standardem pakowania aplikacji i fundamentem praktyk DevOps.

Jak działa Docker?

W przeciwieństwie do pełnej wirtualizacji kontenery nie emulują sprzętu ani nie uruchamiają osobnego jądra — współdzielą jądro hosta, a izolację zapewniają mechanizmy Linuksa: namespaces (osobne drzewa procesów, sieci, systemy plików) i cgroups (limity CPU/RAM). Kluczowe pojęcia:

  • Obraz (image) — niezmienny szablon zbudowany warstwowo według przepisu z pliku Dockerfile; warstwy są cache'owane i współdzielone między obrazami.
  • Kontener — działająca instancja obrazu z własną, ulotną warstwą zapisu.
  • Rejestr — repozytorium obrazów (Docker Hub, GitLab Registry), z którego serwery pobierają wersje do uruchomienia.
  • Wolumeny i sieci — trwałe dane oraz komunikacja między kontenerami.
  • Docker Compose — definicja wielousługowego stacka (aplikacja + baza + cache) w jednym pliku YAML, uruchamiana poleceniem docker compose up.

Zastosowanie w praktyce

Najczęstsze scenariusze użycia Dockera:

  1. Środowiska deweloperskie — cały stack projektu (PHP, MariaDB, Redis) startuje jednym poleceniem, identycznie u każdego członka zespołu.
  2. CI/CD — pipeline buduje obraz raz, testuje go i ten sam artefakt wdraża na produkcję (zob. CI/CD).
  3. Hosting aplikacji na VPS — kontenery porządkują serwer: każda usługa w izolacji, aktualizacja to podmiana obrazu, a rollback — powrót do poprzedniego tagu.
  4. Orkiestracja — przy wielu serwerach kontenerami zarządza Kubernetes lub Docker Swarm, dokładając skalowanie i samonaprawianie.

Dobre praktyki: małe obrazy bazowe (alpine/slim), budowanie wieloetapowe (multi-stage build), jeden proces na kontener i skanowanie obrazów pod kątem podatności.

Powiązane pojęcia

Najczęstsze pytania

Czym różni się kontener Dockera od maszyny wirtualnej?

Maszyna wirtualna emuluje cały komputer z własnym jądrem systemu, przez co waży gigabajty i startuje minutami. Kontener współdzieli jądro hosta, izolując tylko procesy i system plików — zajmuje megabajty i startuje w ułamku sekundy. VM daje mocniejszą izolację, kontener — gęstość i szybkość.