docker network to rodzina podkomend Dockera do zarządzania sieciami kontenerów. Domyślnie kontenery na tej samej sieci bridge widzą się po IP, ale dopiero własna sieć daje rozwiązywanie nazw po nazwie kontenera (wbudowany DNS) i porządną izolację. Używasz tego, gdy chcesz, by aplikacja gadała z bazą po db:5432 zamiast po zmieniającym się adresie IP, albo gdy potrzebujesz odseparować kilka projektów od siebie. To czysta administracja sieci — sama komenda nie uruchamia ani nie zatrzymuje kontenerów.
Składnia i najważniejsze opcje
Podstawowa forma to docker network COMMAND [OPCJE], gdzie COMMAND to jedna z podkomend:
create— tworzy nową sieć (domyślnie sterownikbridge)ls— listuje istniejące sieciinspect— pokazuje szczegóły sieci w JSON (podłączone kontenery, IP, podsieć)connect— podłącza działający kontener do siecidisconnect— odłącza kontener od siecirm— usuwa sieć (musi być pusta)prune— usuwa wszystkie nieużywane sieci za jednym zamachem
Najczęstsze flagi przy create: -d, --driver (typ sterownika, np. bridge, overlay), --subnet (zakres adresów, np. 172.28.0.0/16), --gateway (brama), --attachable (pozwala podłączać zwykłe kontenery do sieci overlay) i --internal (sieć bez dostępu do świata zewnętrznego).
Przykłady użycia
docker network ls— wypisuje wszystkie sieci wraz z domyślnymi (bridge,host,none).docker network create moja-siec— tworzy zwykłą sieć bridge z wbudowanym DNS po nazwach kontenerów.docker network create --subnet=172.28.0.0/16 --gateway=172.28.0.1 app-net— tworzy sieć z ręcznie zadaną podsiecią i bramą.docker run -d --name api --network moja-siec nginx— startuje kontener od razu w wybranej sieci (adocker network connect moja-siec apipodłącza już działający).docker network inspect moja-siec— sprawdzasz, kto jest podłączony i jakie ma IP, gdy coś się nie dogaduje.
Częste błędy i pułapki
Najczęstszy zgrzyt: domyślna sieć bridge nie ma DNS po nazwach — odwołanie ping db zadziała dopiero na własnej, utworzonej przez Ciebie sieci. Drugi klasyk: docker network rm wywala błąd, jeśli do sieci wciąż podłączony jest kontener — najpierw go odłącz lub zatrzymaj. Uważaj też na docker network prune — kasuje wszystkie sieci bez aktywnych kontenerów naraz, więc na współdzielonym hoście łatwo skasować coś cudzego. Pamiętaj, że --internal odcina kontenery od internetu (przydatne dla bazy, zabójcze dla kontenera, który ma pobierać paczki). I drobiazg: sterownik overlay działa sensownie tylko w trybie Swarm, a --attachable dotyczy właśnie jego, nie zwykłego bridge.
Powiązane komendy: docker run --network, docker compose (automatycznie tworzy sieć per projekt), docker inspect oraz docker container ls.