Skip to content

Tworzenie sieci

Konfiguracja sieci Dockera

Sieci Dockera służą do kontrolowania sposobu, w jaki kontenery komunikują się między sobą. Prawidłowe zaprojektowanie sieci jest jednym z kluczowych elementów bezpiecznego i przewidywalnego środowiska kontenerowego.

Stosowanie co najmniej dwóch oddzielnych sieci pozwala na:

  • logiczną separację ruchu publicznego i wewnętrznego
  • ograniczenie ekspozycji usług wrażliwych (np. baz danych)
  • spójne i powtarzalne wdrażanie aplikacji
  • łatwiejsze utrzymanie i debugowanie środowiska

W tym modelu wykorzystujemy dwa typy sieci:

  • proxy – sieć zewnętrzna przeznaczona dla reverse proxy (Caddy) oraz aplikacji wystawianych publicznie
  • internal – sieć wewnętrzna przeznaczona wyłącznie do komunikacji pomiędzy kontenerami (np. aplikacja ↔ baza danych)

Takie podejście zapewnia bezpieczne i spójne korzystanie z Dockera w środowisku produkcyjnym.


Sprawdzenie istniejących sieci

Wyświetlamy listę dostępnych sieci Dockera:

docker network ls

Tworzenie sieci proxy

Jeśli sieć proxy nie istnieje, tworzymy ją:

docker network create proxy

Sieć proxy służy do komunikacji kontenera Caddy z aplikacjami webowymi, które mają być wystawione na zewnątrz.


Tworzenie sieci internal

Jeśli sieć internal nie istnieje, tworzymy ją:

docker network create internal

Sieć internal służy do komunikacji wewnętrznej pomiędzy kontenerami i nie powinna być używana do ekspozycji usług publicznych.


Weryfikacja utworzonych sieci

Sprawdzamy, czy obie sieci są dostępne:

docker network ls | egrep 'proxy|internal'

Deklarowanie sieci w Docker Compose

W plikach compose.yaml deklarujemy sieci jako zewnętrzne:

compose.yaml
networks:
  proxy:
    external: true
  internal:
    external: true

Podpinanie kontenerów do sieci

Przykład aplikacji webowej wystawianej przez Caddy i komunikującej się z bazą danych:

compose.yaml
services:
  app:
    image: example/app:latest
    networks:
      - proxy
      - internal

  db:
    image: postgres:17
    networks:
      - internal

networks:
  proxy:
    external: true
  internal:
    external: true

Zasady projektowe

  • Kontener Caddy podpinamy do sieci proxy
  • Aplikacje publiczne podpinamy do proxy
  • Usługi bazodanowe i pomocnicze podpinamy wyłącznie do internal
  • Komunikację aplikacja ↔ baza realizujemy przez sieć internal
  • Do reverse proxy używamy nazw serwisów Dockera jako hostów

Takie podejście minimalizuje powierzchnię ataku i upraszcza utrzymanie infrastruktury.