Definicja #
Docker to platforma open-source do tworzenia, dystrybucji i uruchamiania aplikacji w kontenerach, wydana w 2013 roku przez firmę Docker, Inc. Kontener to izolowany proces z własnym systemem plików, ale współdzielący jądro systemu operacyjnego hosta.
Kluczowe komponenty Docker:
- Docker Image — niezmenny obraz zawierający aplikację i jej zależności, definiowany przez Dockerfile
- Docker Container — uruchomiona instancja image'u
- Dockerfile — plik tekstowy z instrukcjami budowania image'u
- Docker Hub / Registry — repozytorium gotowych image'ów (publiczne i prywatne)
- Docker Compose — narzędzie do definiowania środowisk wielokontenerowych (YAML)
Docker różni się od maszyn wirtualnych (VM): kontenery są lżejsze (startują w sekundy, zajmują MB zamiast GB) i współdzielą jądro hosta. Ekosystem Docker jest podstawą dla orkiestratorów takich jak Kubernetes i platform PaaS. Alternatywy dla Docker: Podman, containerd, Buildah.
Zastosowania #
Docker jest stosowany do:
- Standaryzacji środowisk deweloperskich — eliminacja problemów z zależnościami
- Wdrożeń w chmurze — AWS ECS/EKS, Azure Container Apps, Google Cloud Run
- Lokalnego uruchamiania zewnętrznych zależności (bazy danych, cache, kolejki)
- Budowania pipeline'ów CI/CD — izolowane, reproducowalne środowiska buildów
- Mikroserwisów — każdy serwis w osobnym kontenerze z niezależnym cyklem życia
Ścieżka nauki #
Przed Dockerem warto znać podstawy systemu Linux i wiersza poleceń.
Zacznij od:
- Uruchamianie gotowych kontenerów: docker run, pull, ps, stop, rm
- Budowanie własnych image'ów — pisanie Dockerfile
- Praca z woluminami i siecią w Dockerze
- Docker Compose — definiowanie środowisk wielokontenerowych
Następnie poznaj:
- Optymalizacja Dockerfile — wieloetapowe buildy (multi-stage builds), cachowanie warstw
- Bezpieczeństwo kontenerów — non-root user, skanowanie image'ów
- Rejestr prywatny — Azure Container Registry, AWS ECR
- Kubernetes — orkiestracja kontenerów na produkcji
FAQ #
- Czym różni się Docker od maszyny wirtualnej?
- Maszyna wirtualna emuluje kompletny system operacyjny z własnym jądrem, zajmując wiele GB i startując w minutach. Kontener Docker współdzieli jądro hosta, waży MB i startuje w sekundy — jest lżejszy, szybszy, ale mniej izolowany.
- Ile zarabia DevOps engineer znający Docker w Polsce?
- DevOps engineer z doświadczeniem w Docker i Kubernetes zarabia w Polsce od 15 000 do 28 000 zł brutto. Docker jest wymagany w praktycznie każdej ofercie pracy dla DevOpsa.
- Czym jest Docker Compose?
- Docker Compose to narzędzie do definiowania i uruchamiania aplikacji wielokontenerowych. W pliku docker-compose.yml opisujesz wszystkie serwisy (np. aplikacja + baza danych + cache), ich konfigurację i zależności, uruchamiając je jedną komendą.
- Jak długo uczyć się Dockera?
- Podstawy Dockera można opanować w tydzień do dwóch. Biegłość w optymalizacji, bezpieczeństwie i integracji z CI/CD oraz Kubernetesem wymaga kilku miesięcy praktyki na realnych projektach.