Zurück zur Übersicht

Begriff

Docker Compose Networks

Containerization Networking S2
2 Quellen 1 Lernpfad 1 Backlink enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Früher (mit docker run) musste man Container manuell verbinden (--link). Das war schrecklich. Docker Compose macht das automatisch. Wenn du eine docker-compose.yml startest, erstellt Docker ein neues, isoliertes Netzwerk für dieses Projekt. Der Projektname ist oft der Ordnername (z. B. myapp_default). Alle Container in dieser Datei landen in diesem Netzwerk. Sie können sich gegenseitig beim Namen rufen: web kann db anpingen. Aber Container aus einem anderen Projekt (otherapp_default) kommen nicht rein. Das ist gut für Sicherheit und Ordnung.

Merksatz: Die automatische Netzwerkkonfiguration in Docker Compose, die applikations-spezifische Bridge-Netzwerke erstellt und DNS-Namen basierend auf Service-Namen bereitstellt.


Quick-Check

  1. Gehen Ports (80:80) durch das Netzwerk?
    Nein. Ports (ports) mappen vom Host in den Container. Das Netzwerk verbindet Container untereinander. Für Container-zu-Container Kommunikation brauchst du keine Ports öffnen! Nur für Host-zu-Container.
  2. Was ist host.docker.internal?
    Ein spezieller DNS-Name (auf Mac/Windows), damit der Container den Host erreichen kann ("Localhost vom Host"). Unter Linux standardmäßig nicht da (muss man mit extra_hosts enabled).
  3. Warum "Project Name"?
    Compose präfixiert alles mit dem Ordnernamen (myproject_network). Damit kannst du das gleiche Projekt 2x im gleichen Docker Daemon starten (in 2 Ordnern), ohne dass die Netze kollidieren.