Technologia

Docker

Konteneryzacja aplikacji. Buduj raz, uruchamiaj wszędzie — dev, staging, produkcja.

Czym jest Docker?

Docker to platforma do konteneryzacji aplikacji. Kontener to lekkie, izolowane środowisko, które zawiera aplikację i wszystkie jej zależności. Docker gwarantuje, że aplikacja działa identycznie na każdym komputerze — od laptopa dewelopera po serwer produkcyjny.

Docker jest standardem w DevOps. Używany z Kubernetes do orkiestracji, z CI/CD do automatyzacji deployów, z cloud providers do skalowania.

Przykłady kodu

Dockerfile — Node.js app

Dockerfile FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build FROM node:20-alpine AS runner WORKDIR /app COPY --from=builder /app/.next ./.next COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/package.json ./ EXPOSE 3000 CMD ["npm", "start"]

Docker Compose — full stack

docker-compose.yml version: '3.8' services: app: build: . ports: - "3000:3000" environment: - DATABASE_URL=postgresql://user:pass@db:5432/mydb depends_on: - db - redis db: image: postgres:16-alpine volumes: - pgdata:/var/lib/postgresql/data environment: POSTGRES_DB: mydb POSTGRES_USER: user POSTGRES_PASSWORD: pass redis: image: redis:7-alpine volumes: pgdata:

Ocena kompetencji

Izolacja
99%
Powtarzalność
100%
CI/CD
95%
Skalowalność
90%
Dev experience
82%
Łatwość nauki
65%

Co potrafi Docker

Konteneryzacja

Pakuj aplikację + zależności w jeden kontener. Działa identycznie wszędzie.

Docker Compose

Uruchom cały stack (app + db + cache + queue) jednym poleceniem.

Multi-stage builds

Optymalizuj rozmiar obrazów. Builder → runner. Mniejsze images = szybszy deploy.

CI/CD

GitHub Actions, GitLab CI. Build → test → push → deploy automatycznie.

Kubernetes

Orkiestracja kontenerów. Auto-scaling, rolling updates, self-healing.

Dev environments

Każdy dev ma identyczne środowisko. Koniec z "u mnie działa".

Kiedy wybrać Docker?

Idealny gdy: potrzebujesz powtarzalnych deployów, pracujesz w zespole, budujesz mikroserwisy, potrzebujesz CI/CD, chcesz łatwo skalować na chmurze.

Nie najlepszy gdy: budujesz prostą stronę (lepiej Vercel/Netlify), nie potrzebujesz izolacji, budujesz prototyp w weekend.