Container beenden & in den Config-Ordner wechseln

Zu erst muss der Docker-Container, bei welchen die Port-Binding editiert werden möchte, beendet werden. Wichtig ist auch gleich die Container ID zu notieren:

docker ps
docker stop web01

Nun kann in den Config-Ordner des Containers gewechselt werden: /var/lib/docker/containers/<container-id>

cd /var/lib/docker/containers/64ff7e58008d1a35f5f54bc00982693ace2e11d9445108fde90233f910aeffa2/

001_container-config-folder.png

Bindings bearbeiten

Bestehende Ports bearbeiten

Dazu muss die hostconfig.json editiert werden:

nano hostconfig.json

In dieser JSON-Datei gibt es einen Bereich mit dem Namen PortBindings:

002_hostconfig-porbindings-empty.png

Um z.B.: den Port 80 des Containers auf Port 8080 des Docker-Server zu mappen, muss der PortBindings-Bereich wie folgt befüllt werden:

"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}]}

003_hostconfig-porbindings-80-8080.png

  • 80: Port im Container
  • 8080: Host-Port des Docker-Server

Nun muss der Docker-Dienst neu gestartet werden. Anschließend kann nun der eigentliche Container wieder gestartet werden:

systemctl restart docker
docker start web01

Zum Schluss sollte das ganze noch überprüft werden:

docker ps 

004_docker-restart-containercheck-80-8080.png

Zusätzliche Ports hinzufügen

Um zusätzlich zum Port 80 den Port 443 freizugeben, muss zuerst die config.v2.json editiert werden:

nano config.v2.json

In dieser JSON-Datei gibt es einen Bereich mit dem Namen ExposedPorts:

005_configv2_exposedports_80.png

Um den Port 443 hinzuzufügen, muss dieser Bereich wie folgt befüllt werden:

"ExposedPorts":{"80/tcp":{},"443/tcp":{}}

006_configv2_exposedports_80-443.png

Als nächstes muss nun die hostconfig.json editiert werden:

nano hostconfig.json

In dieser JSON-Datei gibt es einen Bereich mit dem Namen PortBindings:

002_hostconfig-porbindings-empty.png

Um z.B.: den Port 80 des Containers auf Port 8080 und Port 443 des Containers auf Port 4434 des Docker-Server zu mappen, muss der PortBindings-Bereich wie folgt befüllt werden:

"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}],"443/tcp":[{"HostIp":"","HostPort":"4434"}]}

007_hostconfig-porbindings-80-8080_443-4434.png

  • 80 & 443: Port im Container
  • 8080 & 4434: Host-Port des Docker-Server

Nun muss der Docker-Dienst neu gestartet werden. Anschließend kann nun der eigentliche Container wieder gestartet werden:

systemctl restart docker
docker start web01

Zum Schluss sollte das ganze noch überprüft werden:

docker ps 

008_docker-restart-containercheck-80-8080_443-4434.png