Nützliche Docker Container

Status
Für weitere Antworten geschlossen.

Player One

Benutzer
Mitglied seit
14. Mai 2015
Beiträge
37
Punkte für Reaktionen
1
Punkte
0
Hallo,

weil in einem anderen Thread gerade eine diesbezügliche Frage aufkam und ich selbst seit einiger Zeit viel mit Docker auf der DS arbeite, dachte ich vielleicht könnte man hier eine Übersicht über nützliche Images und wie man diese startet erstellen? Oder denkt ihr, so etwas wäre im Wiki besser aufgehoben? Dann würde ich das dort sammeln.

Ich habe mir angewohnt, Container über die Shell zu starten und zu aktualisieren weil dies schneller geht als über das Synology Docker UI und alle Optionen zur Verfügung stehen, also auch die die es evtl. noch nicht ins UI geschafft haben.

Dazu lege ich unter /volume1/docker/<containername> immer ein Verzeichnis an in dem ein Update-Skript nach folgendem Schema liegt:

Rich (BBCode):
docker pull <imagepath>    # z.B. "gitlab/gitlab-ce:latest"
docker stop <containername> || true && docker rm <containername> || true    # z.B. "gitlab"

<docker run ...>    # s.-unten

Dadurch kann ich Container starten / aktualisieren indem ich das Skript via "sudo sh update-container.sh" aufrufe. Im Container-Verzeichnis lege ich gegebenenfalls weitere Unterverzeichnisse an die ich in den Container mappe um persistent Daten speichern zu können.

Folgende Docker Container laufen aktuell bei mir:

Home Assistant
https://home-assistant.io

Rich (BBCode):
docker run -d --name home-assistant --net=host --restart always -v /etc/localtime:/etc/localtime:ro -v /volume1/docker/homeassistant/config:/config -v /usr/syno/etc/certificate/system/default:/certs:ro -it -p 8181:8181 homeassistant/home-assistant:latest

Anmerkung: "/usr/syno/etc/certificate/system/default" mappe ich (read-only) auf "/certs" damit im Container das Let's Encrypt Zertifikat verwendet werden kann um Zugriffe von extern abzusichern.

Gitlab
https://about.gitlab.com

Rich (BBCode):
docker run --detach --hostname <domainname> --publish 3001:443 --publish 3000:80 --publish 3022:22 --publish 3101:3101 --name gitlab --restart always --volume /volume1/docker/gitlab/config:/etc/gitlab --volume /volume1/docker/gitlab/logs:/var/log/gitlab --volume /volume1/docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest

Gitlab Runner (Continous Integration)
https://docs.gitlab.com/runner/

Rich (BBCode):
docker run -d --name gitlab-runner --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:latest

Pi-Hole
https://pi-hole.net/

Rich (BBCode):
docker run -d -p 53:53/tcp -p 53:53/udp -p 8080:80 --restart always --cap-add=NET_ADMIN -e ServerIP="<ip-adresse>" --name pi-hole --restart=always -v /volume1/docker/pi-hole/pihole.log:/var/log/pihole.log -v /volume1/docker/pi-hole/pihole/:/etc/pihole/ -v /volume1/docker/pi-hole/dnsmasq.d:/etc/dnsmasq.d diginc/pi-hole:latest

docker exec pi-hole pihole -a -p    # entfernt das Admin-Passwort (Oberfläche ist nur aus dem LAN erreichbar)

Anmerkung: Durch das Mappen des dnsmasq.d Verzeichnisses kann ich den DNS Server für mein LAN konfigurieren, das ist also optional.

TV Headend
https://tvheadend.org/

Rich (BBCode):
docker run -d --name tvheadend --net=host --restart always -v /volume1/docker/tvheadend/config:/config -v /volume1/video/Recordings:/recordings -it -p 9981:9981 -p 9982:9982 -e TZ:"Europe/Berlin" linuxserver/tvheadend:latest

Dazu noch ein paar selbst geschriebene Rails-Apps die ich zum einfacheren Deployment ebenfalls in Container gesteckt habe. Dadurch hat man keine Abhängigkeiten im DSM und kann schnell mal verschiedene Images ausprobieren.

Indem man jedem Container einen eigenen Port gibt kann man über den Reverse Proxy von extern über eine Subdomain darauf zugreifen sofern dies gewünscht ist.

Vielleicht hilft das ja künftig dem ein oder anderen mit Docker loslegen zu können. Über Hinweise auf andere nützliche Images würde ich mich freuen (ich hab noch etwas RAM frei :) )

Viele Grüße,
Stefan
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.667
Punkte für Reaktionen
1.563
Punkte
314
Docker steht bei mir schon seit langem auf der - was ich in Zukunft noch in Angriff nehmen möchte - Liste! Von daher würde ich es natürlich begrüßen irgendwo gebündelte Informationen abgreifen zu können, sollte ich mich dem Thema dann wirklich mal annehmen. Von daher würde ich dir vielleicht eine Kombination aus beiden empfehlen. Zum einen ein Wiki-Thema zum anderen ein Diskussions-Thema hier im Forum. Ich werde vielleicht irgendwann ein treuer Leser werden....

Tommes
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.216
Punkte für Reaktionen
69
Punkte
114

yavaz

Benutzer
Mitglied seit
08. Nov 2010
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
Hallo Stefan

Ich möchte SSL für Home-Assistant verwenden, allerdings klappt das ganze bei mir nicht.
docker run --name Home-Assistant -p 8123:8123 --restart=always --net=host --privileged -itd -v /volume1/docker/Home-Assistant/config:/config -v /etc/localtime:/etc/localtime:ro -v /usr/syno/etc/certificate/system/default:/certs:ro --device /dev/ttyACM0 homeassistant/home-assistant:latest

Was ist mit "/certs" gemeint? Muss ich diesen Order erstellen? Muss ich irgendwas verlinken?

Edit: Habe es nun verstanden, muss die conf.yaml noch anpassen.

Gruss und Danke
Stefan
 
Zuletzt bearbeitet:

Player One

Benutzer
Mitglied seit
14. Mai 2015
Beiträge
37
Punkte für Reaktionen
1
Punkte
0
Hallo Namensvetter :)

Genau, die HA Config muss dafür angepasst werden. Und leider auch die nginx Konfiguration damit WebSockets funktionieren: https://github.com/orobardet/dsm-reverse-proxy-websocket

Bei mir sieht der relevante Teil in der configuration.yaml wie folgt aus:

Rich (BBCode):
http:
  api_password: !secret http_password
  server_port: !secret http_port
  ssl_certificate: /certs/fullchain.pem
  ssl_key: /certs/privkey.pem
  trusted_networks:
    - 10.10.0.0/24

Viel Spaß beim rumbasteln mit HA!

Gruss,
Stefan
 

yavaz

Benutzer
Mitglied seit
08. Nov 2010
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
Die nginx Konfiguration habe ich bisher nicht angepasst und HA läuft über SSL.
Leider habe ich aber Probleme mit dem HADashboard via Docker. HADashboard kann keine Verbindung mit HA herstellen... Ohne SSL lief das ganze problemlos..
WARNING Unable to connect to Home Assistant, retrying in 5 seconds
Liegt es evtl. an der nginx Konfiguration die ich noch anpassen müsste?

Edit: Habe die nginx Konfiguration gemacht, das Problem wurde aber nicht behoben.

Gruss und Danke für deine Hilfe
Stefan
 
Zuletzt bearbeitet:

Mr_Blonde

Benutzer
Mitglied seit
03. Jun 2017
Beiträge
34
Punkte für Reaktionen
0
Punkte
6
Ein sehr schöner Threat! Ich kann auch zwei Docker Container beisteuern, die ich im Betrieb habe. Allerdings sind sie eher speziell:


Unifi Controller
Steuerung der Unifi APs und Switche


ShareLatex (ShareLatex Homepage)
Gemeinsames und Browser gestütztes Bearbeiten und Erstellen von LaTex Dokumenten
Benötigt zusätzlich: MongoDB und Redis
Hier muss ich dazu sagen, dass ShareLatex auf meiner DS716+ii mit 4GB RAM schon eher zäh läuft...

(beide jeweils über die GUI eingerichtet)
 

Player One

Benutzer
Mitglied seit
14. Mai 2015
Beiträge
37
Punkte für Reaktionen
1
Punkte
0
Leider habe ich aber Probleme mit dem HADashboard via Docker. HADashboard kann keine Verbindung mit HA herstellen... Ohne SSL lief das ganze problemlos..

HADashboard habe ich bisher noch nicht getestet, deshalb habe ich da leider spontan keine Idee. Nutzt du vielleicht ein self-signed Zertifikat? Evtl. wird diesem nicht vertraut und die Verbindung deshalb nicht aufgebaut? Aber ich stocher hier gerade im Trüben, sorry.

Viel mehr wundert mich eigentlich, dass du dich auch ohne WebSocket-Support im nginx mit der HA-Instanz verbinden konntest. Seit HA auf WebSockets umgestellt wurde (das geschah AFAIR irgendwann in den späteren .30er Releases) geht das ohne Anpassung der Config bei mir reproduzierbar nicht mehr - weder auf dem Desktop noch mit der iOS App. Ich stolper da immer wieder nach DSM-Updates drüber weil der "Hack" nicht persistent ist und man das Prozedere dann immer wieder mal wiederholen darf. Ein diesbezgl. Ticket bei Synology habe ich bisher ergebnislos aufgemacht...
Ich nehme an du setzt die aktuelle 0.46.1 von HA ein?
 

Player One

Benutzer
Mitglied seit
14. Mai 2015
Beiträge
37
Punkte für Reaktionen
1
Punkte
0
Unifi Controller
Steuerung der Unifi APs und Switche

Ja, den Unifi-Controller habe ich auch auf einer DS laufen (leider nicht bei mir daheim, da verrichtet eine Fritz!Box ihren Dienst, wobei es mich immer wieder mal in den Fingern juckt, da auch auf UBNT umzustellen, die Teile sind schon sehr cool) - funktioniert einwandfrei.

ShareLatex sieht interessant aus, danke für den Tipp!

Auf meiner DS916+ ist Gitlab der Container der mit Abstand am zähesten läuft. Das hat denke ich aber weniger mit Docker zu tun als mit Gitlab an sich - ab einer gewissen Anzahl von Repos wird's auf vergleichsweise schwacher Hardware doch etwas zäh... Aber es ist noch im Bereich des Erträglichen und bevor ich mir einen "echten" (stromfressenden) Server zusätzlich hinstelle freue ich mich eher darüber, dass das mit einem kleinen NAS auch funktioniert :)
 

Mr_Blonde

Benutzer
Mitglied seit
03. Jun 2017
Beiträge
34
Punkte für Reaktionen
0
Punkte
6
Ich habe mich hier inspirieren lassen und die letzten Tage dazu genutzt meine angestaubte FHEM Installation in Rente zu schicken und auf Home Assitant als Docker Container auf der Synology zu setzen. Was kann ich sagen, bisher bin ich begeistert. Einziger kleiner Minus-Punkt: Für meinen EnOcean USB 300 stick musste ich ein USB Utils Paket installieren, was wohl mit neueren DSM Versionen immer mal wieder 'broken' ist. Aber irgendwas ist ja immer... :)

Würd mich aber auch interessieren, noch von ein paar anderen zu hören, was in deren Docker Containern so läuft.
 

Mr_Blonde

Benutzer
Mitglied seit
03. Jun 2017
Beiträge
34
Punkte für Reaktionen
0
Punkte
6
Von Tag zu Tag werde ich größerer Docker Fan. :)

Inzwischen laufen bei mir acht Container (siehe Screenshot im Anhang). Der neuste Container ist mqtt-dash. Das Phyton Script wartet auf Amazon Dash Button Aktionen und wandelt diese in MQTT Nachrichten um. Diese wiederum werden dann an meinen MQTT Broker (embedded von Home Assistant) geschickt und dort mit Lampen, etc. verknüpft.

Bildschirmfoto 2017-07-12 um 18.38.17.jpg
 

stulpinger

Benutzer
Mitglied seit
27. Mai 2009
Beiträge
734
Punkte für Reaktionen
141
Punkte
69
Bei mir läuft seit ein paar Tagen JDownloader als Container einwandfrei
 

HaraldB1966

Benutzer
Mitglied seit
23. Mai 2015
Beiträge
380
Punkte für Reaktionen
0
Punkte
0
Hi

Hier ich hab auch seit einigen Moanten den Container von jacobalberty UNIFI am laufen.

Es gibt nun nee neue Version. Wie bekomme ich das update drauf ? Alles neu machen ? Einstellungen ?

Harald
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.186
Punkte für Reaktionen
71
Punkte
68
Wenn ein neues Image im Dockerhub bereit steht, mache ich folgendes:
* Container stoppen,
* auf die Komanndozeile gehen, "docker pull <image>" eingeben und neues Image downloaden,
* Container wieder starten.
Settings bleiben so erhalten.

Warum Synology das Pull Kommando nicht in die Gui implementiert hat weiss ich nicht. Oder ich habe es nur noch nicht gefunden.
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.216
Punkte für Reaktionen
69
Punkte
114
Ich machs auch so wie Tommi2day!
Eine Pull Option gibt es meines Wissens in der GUI leider nicht :(
 

HaraldB1966

Benutzer
Mitglied seit
23. Mai 2015
Beiträge
380
Punkte für Reaktionen
0
Punkte
0
Hi wo genau gebt Ihr das ein. Wenn der Container gestoppt ist dann steht der Terminal des Container nicht zur verfügung
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.186
Punkte für Reaktionen
71
Punkte
68
Nicht im Docker Terminal sondern auf der Kommandozeile der DS als root.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.159
Punkte für Reaktionen
912
Punkte
424
Um auf der Konsole zu root zu wechseln braucht es "sudo -i" und nicht "sudo -s"

Und <image> ist sicher durch den realen Namen des Image zu ersetzen das man ziehen will.
 

Player One

Benutzer
Mitglied seit
14. Mai 2015
Beiträge
37
Punkte für Reaktionen
1
Punkte
0
"<image>" ist ein Platzhalter, versuch mal folgendes:

sudo docker pull jacobalberty/unifi:latest

Erklärung:
- "sudo" gibt an, dass der Befehl als root ausgeführt werden soll (muss auf den Synos so gemacht werden, damit man mit docker kommunizieren kann)
- "docker pull" ist der Befehl um den Download anzustossen
- "jacobalberty/unifi" bezieht sich auf das Docker Image "unifi" aus dem Repository des Users "jacobalberty"
- "latest" ist der Tag über den man steuern kann welche Version des Images man haben möchte (meist zeigt "latest" auf die aktuellste Version)
 
  • Like
Reaktionen: Nubi
Status
Für weitere Antworten geschlossen.
 

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