Site icon bintorosoft.com

Docker Compose Netzwerke: Interne Kommunikation sauber trennen

Dissident social justice crusaders doing online activism, wearing anonymous masks and filming video in underground bunker, blackmailing government after stealing secret military documents

In komplexen Docker-Umgebungen mit mehreren Containern ist es entscheidend, die interne Kommunikation sauber zu trennen. Docker Compose ermöglicht die Definition von benutzerdefinierten Netzwerken, sodass Dienste nur mit den vorgesehenen Containern kommunizieren können. Dies erhöht Sicherheit, Übersichtlichkeit und Wartbarkeit von Multi-Container-Anwendungen.

Grundlagen von Docker Compose Netzwerken

Jeder Docker Compose Stack erstellt standardmäßig ein eigenes Bridge-Netzwerk. Container innerhalb desselben Netzwerks können sich direkt über Container-Namen erreichen. Durch zusätzliche Netzwerke lässt sich die Kommunikation gezielt steuern.

Netzwerktypen

Benutzerdefinierte Netzwerke in Docker Compose

Docker Compose erlaubt die explizite Definition von Netzwerken, sodass Dienste nur auf bestimmten Netzwerken laufen und kommunizieren können.

Beispiel: Netzwerk definieren

version: '3'
services:
  web:
    image: nginx
    networks:
      - frontend
  api:
    image: my_api
    networks:
      - frontend
      - backend
  db:
    image: mysql
    networks:
      - backend

networks:
frontend:
backend:

In diesem Beispiel kommuniziert die Web-Anwendung nur mit dem API-Service über das frontend-Netzwerk, während die Datenbank nur über das backend-Netzwerk erreichbar ist.

Vor- und Nachteile der Netzwerktrennung

Portfreigaben und interne Kommunikation

Port-Mapping an den Host sollte nur für Dienste erfolgen, die extern erreichbar sein müssen. Interne Dienste kommunizieren ausschließlich über interne Netzwerke.

Beispiel: Nur Web extern zugänglich

services:
  web:
    image: nginx
    ports:
      - "8080:80"
    networks:
      - frontend
  api:
    image: my_api
    networks:
      - frontend
      - backend
  db:
    image: mysql
    networks:
      - backend

Hier ist nur der Web-Service von außen über Port 8080 erreichbar. API und Datenbank bleiben intern.

Netzwerke prüfen und verwalten

Docker Compose erstellt und verwaltet die Netzwerke automatisch. Manuelle Kontrolle ist mit den Docker CLI-Befehlen möglich.

# Alle Netzwerke anzeigen
docker network ls

# Details eines Netzwerks prüfen
docker network inspect 

# Container mit Netzwerkinformationen prüfen
docker inspect 

Best Practices für interne Netzwerke

Praxisbeispiele

Microservice-Architektur

version: '3'
services:
  frontend:
    image: nginx
    ports:
      - "80:80"
    networks:
      - web_net
  api:
    image: node_api
    networks:
      - web_net
      - db_net
  database:
    image: postgres
    networks:
      - db_net

networks:
web_net:
db_net:

Interner Service ohne externe Freigabe

docker-compose run --rm api curl http://database:5432

Zusammenfassung

Mit Docker Compose Netzwerken lassen sich Container-Dienste sauber trennen und nur die erforderliche Kommunikation zulassen. Durch klare Netzwerkarchitekturen, Minimierung von Portfreigaben und gezielte Nutzung von Frontend- und Backend-Netzwerken können Anwendungen sicherer, übersichtlicher und wartbarer betrieben werden.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version