Watchtower -e DOCKER_HOST ?

Huhie

Benutzer
Mitglied seit
29. Nov 2007
Beiträge
449
Punkte für Reaktionen
8
Punkte
18
Moin Zusammen,

ich habe hier zu Hause eine Syno laufen mit etlichen Containern. U.a. Watchtower. Das läuft soweit
richtig gut.

Des Weiteren habe ich noch zwei Syno´s ausserhalb laufen, die per VPN verbunden sind. Nun bin
ich in Watchtower über den REMOTE Befehl "DOCKER_HOST gefallen.

Ich bekomme aber immer Verbindungsfehler. Kann mir jemand von euch flux mal helfen und mir
sagen, wie ich den Befehl in meine "docker compose" Datei einbaue... Google hat mir dazu nicht wirklich geholfen...

Danke schon mal...

Fehler: time="2023-11-10T09:17:33+01:00" level=error msg="error during connect: Get \"http://192.168.30.10:2375\\\"/v1.25/containers/json?filters=%7B%22status%22%3A%7B%22created%22

#Watchtower
watchtower:
container_name: watchtower
image: containrrr/watchtower:latest
restart: "always"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- TZ=Europe/Berlin
- WATCHTOWER_LOG_LEVEL=info
- WATCHTOWER_POLL_INTERVAL=86400
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_INCLUDE_STOPPED=true
- WATCHTOWER_NOTIFICATIONS_LEVEL=info
- WATCHTOWER_NOTIFICATIONS_HOSTNAME=NAS
- WATCHTOWER_NOTIFICATIONS=email
- WATCHTOWER_NOTIFICATION_EMAIL_FROM=noreply@xyz.de
- WATCHTOWER_NOTIFICATION_EMAIL_TO=mein.name@gmx.de
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER=mein.SMTPServer.de
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=25
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=noreply@xyz.de
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=psssstgeheimpsssst
- DOCKER_HOST="tcp://192.168.30.10:2375"
network_mode: host
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
853
Punkte
154
Du müsstest wahrscheinlich deinen docker Daemon auf den Pis über die IP erreichbar machen. Ich weiß es aber nicht genau, weil ich das noch nie benutzt habe. Aber die Meldung würde ich so deuten, dass er den Docker Daemon nicht erreicht.
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.474
Punkte für Reaktionen
1.087
Punkte
194
Ich habe es nicht ausprobiert, sehe aber durchaus Probleme mit deiner Beispielkonfiguration.
Note in both of the examples above that it is unnecessary to mount the /var/run/docker.sock into the watchtower container.
https://containrrr.dev/watchtower/remote-hosts/

Auf das Mounten des Volumes solltest du wohl hier verzichten. Wenn das nicht hilft: Auch mal auf die Firewall-Regeln achten.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Das ist kein Befehl, sondern eine Variable, die erlaubt zu überschreiben wie man die Docker-Engine erreicht, die man verwalten will.

Per Default ist eine Docker-Engine immer nur per Unix Domain Socket /var/run/docker.sock erreichbar. Das ist aus gutem Grund so: Sicherheit!

Man müsste das tcp-Binding extra konfigurieren. Allerdings muss einem klar sein, dass jeder der den tcp Port erreichen kann, mit der Docker-Engine anstellen kann was er/sie will, inkl. starten von privilegiertem Container mit einem Volume bind auf /etc, von wo aus man sich dann selbst einen User im System anlegen kann und so die Übernahme vom System bequem vorbereiten kann - oder andere Verzeichnisse mounted und bspw. Daten löscht.

Es sei hier ausdrücklich davor gewarnt "einfach so" das tcp Bindung zu aktivieren, insbesondere wenn man vor hat diesen auch noch über das Internet erreichbar zu machen. Das fällt dann in den Bereich "grob fahrflässig".
 
  • Like
Reaktionen: plang.pl und alexhell

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Ich würde das wegen watchtower nicht machen. Lieber auf jedem Host einzeln laufen lassen. Schneller, einfacher, sicherer
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Definitiv. Watchtower is ja recht sparsam mit den Ressourcen. Und wenn einem das immer noch zu viel ist, dann kann man ihm immer noch mittels Task Scheduler oder cron zu vordefinierten Zeitpunkten starten, einmal laufen lassen und beenden lassen mit --run-once (siehe: https://containrrr.dev/watchtower/arguments/#run_once)
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Genau. Ich lasse ihn ohnehin nur als RunOnce laufen. Automatisierte Container Updates führen leider oft zu unvorhergesehenen Problemen
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat