WEB-GUI zur Administration von Docker Containern
Zum Hinzufügen einer Docker Applikation, auf Start klicken.
Dann für eine vorhandene Docker-Compose.yml
Auf (1) gehen, bei einem vorhandenen Docker auf (2).
Wird noch ergänzt.
Es fehlt auf jeden Fall:
https://docs.docker.com/compose/use-secrets/
Dockge ist auf Port 5001 erreichbar.
Und zwar von überall!
Ok, das ist natürlich passwort geschützt. Aber Dockge ist ein kleines Projekt, ziemlich unbekannt und neu, das wird bestimmt einige Sicherheitslücken haben.
Die Oberfläche zeigt die docker-compose und .env Einträge und einiges mehr, also auch die DB Passwörter und so weiter aller Docker Anwendungen.
Mein derzeitiges Workaround deshalb:
Ich habe zwei Aliase definiert.
alias PAUSE='docker pause dockge_dockge_1'
alias UNPAUSE='docker unpause dockge_dockge_1'
So kann ich zum benutzen von dockge einfach UNPAUSE eingeben und nach getaner Arbeit mit PAUSE wieder den container anhalten.
Nun habe ich auf anraten meines Lieblingsforum etwas anderes gemacht.
Ich nutze ssh und tunnel den Remote Port 5001 zu mir lokal auf Port 1025
ssh -L 1025:n.n.n.n:5001 root@n.n.n.n
Der lokale Port 1025 muss höher sein, als der Port, der als previlegiert auf dem Server angegeben ist:
cat /proc/sys/net/ipv4/ip_unprivileged_port_start
1024
Ausserdem muss der sshd des Servers das Ganze auch erlauben, deshalb:
# In
/etc/ssh/sshd_config
# Die Option
AllowTcpForwarding no
# auf yes setzen
/etc/ssh/sshd_config
Jetzt funktioniert das Ganze bereits.
http://localhost:1025
Aber immer noch auch via http://n.n.n.n:5001
Das ist unschön.
Experimente mit
Ports:
ports:
# Host Port : Container Port
- 127.0.0.1:5001:5001
führten nicht zum Erfolg, es wird immer 0.0.0.0 also Any IP gesetzt.
Scheint am dockge image zu liegen, nun ja, ziemlich junges Projekt, geht bestimmt irgendwann.
Deshalb habe ich bis dahin die Firewall bemüht und 5001 gesperrt.
Untersuchung
-A DOCKER -d 192.168.128.2/32 ! -i br-bd6584e42484 -o br-bd6584e42484 -p tcp -m tcp --dport 5001 -j ACCEPT
-A DOCKER -d 192.168.32.2/32 ! -i br-c6f5cbb9e725 -o br-c6f5cbb9e725 -p tcp -m tcp --dport 2999 -j ACCEPT
Oben hatte ich erwähnt, dass dockge nicht die port Parameter
ports:
# Host Port : Container Port
- 127.0.0.1:5001:5001
127.0.0.1:5001:5001
beachten würde.
Das war Unfug!
Was man lediglich machen muss, ist den Container stoppen und starten, oder besser noch ein
docker-compose up --force-recreate --build -d
Kontrolle:
docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------
dockge_dockge_1 /usr/bin/dumb-init -- bash ... Up (healthy) 127.0.0.1:5001->5001/tcp
Da (bei mir) nun aber das Tunneln nicht mehr klappt, habe ich -zugegeben- eine pragmatische aber funktionierende Lösung gefunden: