CodeGym /Kurse /Docker SELF /Veröffentlichung von Container-Ports

Veröffentlichung von Container-Ports

Docker SELF
Level 17 , Lektion 3
Verfügbar

4.1 Hauptkonzepte zur Veröffentlichung von Ports

Die Veröffentlichung von Ports bei Containern in Docker ermöglicht es, dass Dienste, die innerhalb der Container laufen, aus einem externen Netzwerk oder vom Host zugänglich sind. Das ist ein wichtiger Teil der Konfiguration von Multi-Container-Anwendungen, da es die Interaktion mit Diensten wie Webservern, Datenbanken und anderen Netzwerk-Anwendungen erlaubt. In dieser Vorlesung schauen wir uns an, wie man Container-Ports veröffentlicht und den Zugriff auf Services konfiguriert.

Hauptkonzepte zur Veröffentlichung von Ports

  • Port-Mapping: Zuordnung eines Host-Ports zu einem Container-Port.
  • Parameter -p/--publish: wird verwendet, um das Port-Mapping beim Starten eines Containers anzugeben.
  • Parameter -P/--publish-all: automatische Zuweisung von Host-Ports für alle exportierten Ports eines Containers.

Beispiel für die Nutzung des Parameters -p

Beim Starten eines Containers kannst du die Option -p verwenden, um ein Mapping vom Host-Port zu einem Container-Port festzulegen. Format des Befehls:

Terminal

docker run -d -p <host_port>:<container_port> <image> 

Beispiel 1: Veröffentlichung des Ports eines Nginx-Webservers

Wir starten einen Container mit Nginx und veröffentlichen den Port 80 des Containers auf dem Host-Port 8080.

Jetzt ist Nginx unter http://localhost:8080 zugänglich.

Terminal

docker run -d -p 8080:80 --name mynginx nginx 

Beispiel 2: Veröffentlichung mehrerer Ports

Du kannst mehrere Ports veröffentlichen, indem du mehrere -p-Optionen angibst.

In diesem Beispiel ist Nginx über HTTP auf Port 8080 und über HTTPS auf Port 8443 zugänglich.

Terminal

docker run -d -p 8080:80 -p 8443:443 --name mynginx nginx 

Beispiel für die Nutzung des Parameters -P

Der Parameter -P veröffentlicht automatisch alle in der Dockerfile oder in den Container-Einstellungen angegebenen Ports auf zufällige Host-Ports.

Beispiel:

Terminal

docker run -d -P --name mynginx nginx 

Um herauszufinden, welche Ports zugewiesen wurden, kannst du den Befehl docker port verwenden:

Terminal

docker port mynginx

Die Ausgabe wird ungefähr so aussehen:

Terminal

80/tcp -> 0.0.0.0:32768
443/tcp -> 0.0.0.0:32769

4.2 Veröffentlichung von Ports in Docker Compose

Um Ports in Docker Compose zuzuweisen, nutze die Direktive ports in der Datei docker-compose.yml.

Beispiel für eine docker-compose.yml-Datei

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
      - "8443:443"

Starte Docker Compose:

Terminal

docker compose up -d 

Jetzt ist Nginx unter den Adressen http://localhost:8080 und https://localhost:8443 verfügbar.

4.3 Zusätzliche Parameter für die Veröffentlichung von Ports

1. Einschränkung der IP-Adresse

Du kannst den Zugriff auf einen Container-Port einschränken, indem du die IP-Adresse des Hosts angibst.

Beispiel:

In diesem Beispiel ist Nginx nur vom lokalen Host unter der Adresse http://127.0.0.1:8080 erreichbar.

Terminal

docker run -d -p 127.0.0.1:8080:80 --name mynginx nginx 

2. Verwendung eines Portbereichs

Du kannst einen Bereich von Ports zur Veröffentlichung angeben.

Beispiel:

Terminal

docker run -d -p 8080-8081:80-81 --name mynginx nginx 

Praktische Tipps:

  • Nur notwendige Ports veröffentlichen: Veröffentliche nur die Ports, die wirklich für den Zugriff auf Dienste benötigt werden, um potenzielle Schwachstellen zu minimieren.
  • Verwendung einer Firewall: Richte eine Firewall ein, um den Zugriff auf veröffentlichte Ports nur von vertrauenswürdigen IP-Adressen zu beschränken.
  • Überwachung und Protokollierung: Nutze Überwachungs- und Protokollierungs-Tools, um den Zugriff auf veröffentlichte Ports zu verfolgen und verdächtige Aktivitäten zu erkennen.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION