Ein Wiki privater Natur

Dockge

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).

dockge-1.png

Wird noch ergänzt.
Es fehlt auf jeden Fall:
https://docs.docker.com/compose/use-secrets/

Dockge absichern

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

UPDATE

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: