Docker Compose i Budowanie Obrazów

Zaawansowane Docker - Compose, sieci, wolumeny i tworzenie własnych obrazów

Published on Mar 29, 2026

Reading time: 1 minutes.


Docker Compose i Budowanie Obrazów

1. Sieci w Docker Compose

Docker Compose automatycznie tworzy sieć dla usług, ale możemy ją ręcznie skonfigurować dla lepszej izolacji (np. separacja Frontendu od Bazy Danych).

Przykład izolacji (Tiered Networking)

W tym układzie backend działa jako most – widzi obie sieci, podczas gdy app i db są od siebie całkowicie odizolowane.

YAML

services:
  app:
    image: alpine:latest
    tty: true
    networks:
      - frontend
  backend:
    image: alpine:latest
    tty: true
    networks:
      - frontend
      - backend
  db:
    image: alpine:latest
    tty: true
    networks:
      - backend

networks:
  frontend:
  backend:

Ważne: Wewnątrz tej samej sieci kontenery komunikują się po nazwach usług (DNS). Z kontenera app możesz wykonać ping backend.


2. Wolumeny i Porty w Compose

Uproszczona konfiguracja dla środowiska deweloperskiego.

Cecha Konfiguracja w YAML Opis
Porty 8080:80 Host (8080) przekierowuje na kontener (80).
Wolumen db_data:/var/lib/mysql Trwałe przechowywanie danych bazy.
Bindowanie ./:/usr/share/nginx/html Mapowanie plików z Twojego dysku do kontenera (zmiany w kodzie widać od razu).

3. Tworzenie Własnych Obrazów (Dockerfile)

Nie musisz budować wszystkiego od zera. Rozszerzasz gotowe obrazy (np. Alpine, Node, Nginx).

Przykładowy Dockerfile (Node.js na Ubuntu)

Dockerfile

FROM ubuntu:latest
# Instalacja paczek systemowych
RUN apt-get update && apt-get install -y nodejs npm
# Konfiguracja katalogu roboczego
RUN mkdir /app
WORKDIR /app
# Kopiowanie kodu aplikacji
COPY app.js .
# Komenda startowa
CMD ["node", "app.js"]

Budowanie i uruchamianie

Jeśli używasz Docker Compose do budowania:

  • Budowanie: docker compose build
  • Uruchomienie z przebudowaniem: docker compose up --build (wymagane, jeśli zmieniłeś coś w Dockerfile lub index.html).
  • Sam Docker CLI: docker build -t moja-nazwa:v1 .