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/
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
:
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"}]}
80
: Port im Container8080
: 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
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
:
Um den Port 443 hinzuzufügen, muss dieser Bereich wie folgt befüllt werden:
"ExposedPorts":{"80/tcp":{},"443/tcp":{}}
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
:
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"}]}
80
&443
: Port im Container8080
&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