Portainer auf der Synology DiskStation
Bei Portainer handelt es sich um eine Weboberfläche zur grafischen Bedienung des Docker Dienstes die selbst als Docker Container daher kommt und somit in der Regel einfach und schnell auf jedem Docker Host installiert werden kann.
Wie ihr dies, wenn ihr wollt sogar gänzlich ohne Kommandozeile, auf einer Synology DiskStation mit DMS 6 bewerkstelligt, zeige ich euch in diesem Tutorial.
Hinweis
Das Docker Paket auf der Synology DiskStation kommt bereits mit einer Weboberfläche, die in den DSM integriert ist. Allerdings ist der Funktionsumfang relativ beschränkt. So lassen sich hier einige Funktionen schlicht nicht konfigurieren. Aus diesem Grund empfehle ich grundsätzlich die Nutzung von Portainer.
Schritt 1 - Vorbereitungen
Ich gehe mal davon aus, dass euer Docker Dienst auf der Disk Station bereits läuft. Prüfen könnt ihr dies ganz einfach über die „Paketverwaltung“. Oder falls ihr Zugriff darauf habt auch über die Kommandozeile:
docker info
Weiterhin benötigen wir ein Volume oder einen Ordner den wir zur Speicherung der Konfiguration des Portainer Containers beim Starten in diesen einbinden. Auf der DiskStation verwende ich einen Ordner. Dieser lässt sich ganz einfach über die FileStation anlegen. In meinem Beispiel heißt der Ordner „portainer_data“ und liegt auf volume1. Der Pfad im Filesystem der DiskStation lautet daher:
/volume1/docker/portainer_data
Schritt 2 - Portainer Container starten
Jetzt gilt es den Portainer Container zu erstellen und zu starten. Wer Zugriff auf die Kommandozeile der DiskStation hat, erledigt dies durch den folgenden „docker run“-Befehl:
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/portainer_data:/data portainer/portainer-ce
Zur Erläuterung hier die einzelnen Teile des Befehls kurz erklärt:
-
docker run…zum Starten des Containers
-
-d…Container läuft im „detached mode“
-
-p 9000:9000…öffnet den Port 9000 für den Zugriff auf die Weboberfläche
-
-name portainer…setzt den Namen des Containers
-
-restart always…aktiviert den automatischen Neustart des Containers bei Fehler
-
-v /var/run/docker.sock:/var/run/docker.sock…bindet die angesprochene docker.sock-Datei ein
-
-v /volume1/docker/portainer_data:/data…bindet das Data-Verzeichnis ein
-
portainer/portainer-ce…verwendetes Image für den Container
Hinweis
Wer vor hat auf dem selben Host wie den Portainer Container später auch den ioBroker Container laufen zu lassen, dem empfehle ich den Port für den Zugriff auf die Weboberfläche um zu leiten, da der Port 9000 auch vom ioBroker verwendet wird.
Wenn ihr also statt „-p 9000:9000“ lieber „-p 8889:9000“ verwendet, dann wird die Weboberfläche auf dem Port 8889 geöffnet und ihr lauft später nicht in einen Portkonflikt. Der Zugriff auf die Weboberfläche (siehe unten) erfolgt dann natürlich über http://[IP_oder_Name_der_DiskStation]:8889
Wer den Container auf der DiskStation ohne Kommandozeile in Betrieb nehmen will, der kann den ersten Start des Containers auch über den Synology Aufgabenplaner im DSM (“Systemsteuerung > Aufgabenplaner”) initiieren. Dazu legen wir einfach eine neue “geplante Aufgabe > benutzerdefiniertes Skript” an. Im Register “Allgemein” geben wir dem Vorgang einen Namen und lassen den Benutzer unter dem der Befehl ausgeführt wird auf “root”. Den Haken “Aktiviert” entfernen wir:
Auf der Registerkarte “Zeitplan” können wir zu Sicherheit “Am folgenden Datum ausführen” auswählen und ein Datum aus der Vergangenheit konfigurieren.
Auf der Registerkarte “Aufgabeneinstellungen” kopieren wir den oben aufgeführten Startbefehl in das Feld unter “Benutzerdefiniertes Skript”. Mit OK wird gespeichert und die Aufgabe ist erstellt:
Die neu erstellte Aufgabe können wir nun auswählen und über den Button “Ausführen” den Container starten.
Anschließend wird der Container gestartet. Dies sollte nicht allzu lange dauern. Um zu überprüfen ob der Container korrekt gestartet ist können wir einen kurzen Blick in die im DSM integrierte Docker Oberfläche werfen. Unter Container sollte jetzt ein Container mit dem Namen „Portainer“ laufen.
Analog zur Prüfung über den Disk Station Manager kann man natürlich auch über die Kommandozeile auf laufende Container prüfen:
docker inspect portainer
In der folgenden Ausgabe sollte, relativ weit oben, eine Zeile mit „Status: running“ zu finden sein. Diese Zeigt an, dass der Container korrekt angelegt wurde und sich im erwarteten Status befindet.
Schritt 3 - Zugriff und Einrichtung der Weboberfläche
Nachdem der Container gestartet ist, ist die neue Weboberfläche unter folgender Adresse erreichbar:
http://[IP_oder_Name_der_DiskStation]:9000
Beim ersten Aufruf möchte Portainer einen Benutzer und ein Kennwort zum Schutz anlegen. Die Daten können natürlich frei gewählt werden.
Nachdem der erste Benutzer angelegt ist, möchte Portainer wissen welche Instanz wir damit verwalten wollen. Da wir den lokalen Host verwalten möchten wählen hier “Local” aus und bestätigen mit “Connect”
Dann gelangen wir schließlich auf die Übersichtsseite der Portainer-Weboberfläche. Unten sehen wir den Host (local) mit einem grünen Symbol (up) daneben. Dies bedeutet, dass die Verbindung zur Docker-Instanz erfolgreich hergestellt wurde.
Unser Portainer ist nun einsatzbereit.
Bonus - Portainer aktualisieren
Wie bei jeder Software erhält natürlich auch der Portainer regelmäßig Updates. Diese werden, wie bei Docker üblich über die Aktualisierung des Docker Images gemacht und sind fix erledigt. Ob ein Update für Portainer vorliegt sehen wir in der Portainer Weboberfläche.
Der Updateprozess für einen Container gestaltet sich in der Regel nach folgendem Muster:
1. Löschen des alten Containers
2. Laden der neuen Image Version
3. Erstellen des neuen Containers
Da wir ja unsere Konfigurationsdaten für den Portainer in das Verzeichnis „portainer_data“ ausgelagert haben, erfolgt das Update (natürlich) ohne Datenverlust und der Portainer muss anschließend nicht wie ab Schritt 3 beschrieben erneut eingerichtet werden.
Beginnen wir also mit dem Löschen des alten Containers. Dazu nutzen wir die im DSM eingebaute, funktionsreduzierte Administrationsoberfläche für Docker.
Unter dem Menüpunkt „Container“ finden wir unseren Portainer Container und stoppen ihn. Über den Menüpunkt „Aktion“ > „Löschen“ wird der Container entfernt.
Damit wir beim Neuerstellen des Containers auch wirklich ein frisch heruntergeladenes, aktuelles Image verwenden, entfernen wir auch noch das Portainer Docker Image. Dazu wechseln wir in dem Menüpunkt „Image“, markieren das Portainer Image und klicken den „Löschen“-Button.
Optional können wir das aktuelle Image nun noch über den Menüpunkt „Registrierung“ auf die DS herunterladen. Die Klickerei können wir us aber auch sparen, da der Docker Dienst dies beim Erstellen des Containers automatisch erledigt wenn das Image lokal noch nicht zur Verfügung steht.
Was nun noch bleibt ist das Neuanlegen bzw. Starten des neuen Portainer Containers. Dies erfolgt wie in Schritt 2 beschrieben entweder über die Kommandozeile oder den Aufgabenplaner der Disk Station. Anschließend können wir die Weboberfläche neu laden und wie gewohnt darauf zugreifen.
Das sollte es zu diesem Thema erst einmal gewesen sein. Bei Fragen und Anregungen nutzt gerne die Kommentare oder kontaktiert mich über einen der öffentlichen Kanäle wie z.B. über das ioBroker Forum oder den ioBroker Discord Channel.
Grundsätzlich biete ich keinen persönlichen Support per Messenger bzw. E-Mail an. Fragen sollten meiner Meinung nach immer öffentlich gestellt und beantwortet werden, damit auch andere User mit der selben Frage Zugriff auf die Antworten bekommen. Falls ihr mal irgendwo keine Antwort bekommt, nutzt gerne das Kontaktformular und macht mich auf euren Kommentar, Post, Beitrag oder Thread aufmerksam! Danke.
MfG,
André
Änderungshistorie
2021-05-03 Bonus-Teil hinzugefügt – Portainer aktualisieren
2021-01-10 Aktualisierung der Anleitung auf das neue Portianer Image (portianer/portainer-ce)
2020-12-28 Überarbeitung des Tutorials im Zuge der Umstrukturierung.
2020-09-15 Überarbeitung und Umzug von buanet.de/tutorials zu smarthome.buanet.de
Ich bin zwar noch mitten in der Installation, aber ein kleiner Hinweis:
Bei Schritt 2 musste ich, trotz dass ich als admin an der Syno Console angemeldet bin, ein „sudo“ vorwegstellen, da ich sonst keine Rechte hatte, den Befehl auszuführen.
Hallo Jan,
danke für den Hinweis. In der Tat brauchst du für den Docker Befehl in der Regel erweiterte Rechte. Wenn du den Befahl also als admin (und nicht als root) ausführst musst du das per „sudo“ erledigen.
MfG,
André
Hallo,
ich habe portrainer in der neusten version neu installiert. Der Schritt , wo ich local auswählen muss erscheint allerdings nicht.
Portrainer erzählt mir dann, dass ich einen endpoint erstellen soll.
wie mache ich das ?
Hallo Dirk,
wenn dir local nicht angeboten wird, dann hast du vermutlich Probleme mit dem Einbinden der docker.sock-Datei (-v /var/run/docker.sock:/var/run/docker.sock). Aus der Ferne ist das mit so wenigen Informationen aber schwierig zu beurteilen.
MfG,
André
Hallo André,
ich haba das CE image als Grundlage genommen .im grunde genmme nhbe ich das _image geladen und mit dem befehl „docker run -d -p 9000:9000 –name portainer –restart always -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/portainer_data:/data portainer/portainer-ce“ installiert.
problem war das ich volume2 anstatt e1 habe somit ist das problem gelöst
Hi, kurze Frage, wäre es nicht einfacher portainer-ce direkt über Synology Docker zu installieren. Da wären es nur wenige clicks. Grüße
Hallo Alex,
hast du es probiert? Hat es geklappt? Falls ja, melde dich mal bei mir.
Meines Erachtens ist es nicht möglich den Portainer Container über die Synology Docker Oberfläche zu deployen da man die docker.sock nicht mounten kann. Du kannst es unter Volume ja gar nicht auswählen…
Daher geht es leider nur über die Kommandozeile oder eben den Trick mit dem Aufgabenplaner.
MfG,
André
Hi Andre,
du hast Recht, man kann zwar das Image runterladen und als Container deployen, aber die docker.sock kriegt man nicht gemountet. Evtl. könnte man an den Rechten was tweaken, aber damit wäre es nicht mehr einfach. Da ist der Einzeiler von dir auf der console viel besser.
Danke für die Anleitung
Hi, hat es einen spez. Grund, dass Du auf das portainer-ce Image gewechselt bist ?
Welchen Vorteil hat das ?
mfg,
CR
Hallo,
ja. Infos dazu hier: https://hub.docker.com/r/portainer/portainer
Zitat:
„NOTE, This repo, portainer/portainer is the home of Portainer v1.24.x, and is now deprecated; all new releases for Portainer 2.0 will be published in portainer/portainer-ce“
MfG,
Andrße
Danke für die Info 🙂
Hallo
Danke für die tolle Anleitung, wo weit hat auch alles funktioniert. Mein Problem ist, dass bei meinem Iobroker Container der (nach deiner Anleitung) Healthy Status steht, es kommt nie Running. Ist das der Grund, dass ich darauf nicht zugreifen kann?
Eine 2 Frage hätte ich noch, ich möchte eben alles neu aufsetzten so wie du es in deinen Anleitung beschreibst. Allerdings eckt es bei mit etwas mit den Netzwerk Einstellungen, bin mir nicht sicher wie ich das machen soll. (hodt, MACVLAN)
Ich habe jetzt 2 Container ( grafana, deconz) auf der altmodischen Art, direkt auf der Synology im docker ersrtellte Container laufen.
Die muss/sollte ich dann ja auch neu mit dem Portrainer erstellen, oder? Den der nue Iobroker Container mit Portrainer erstellt würde ja nicht mit den alten Container reden, stimmt das?
Hallo Bernd,
„healthy“ ist korrekt. Bedeutet ja „gesund“. Diese Überprüfung gab es beim Verfassen des Tutorials noch nicht. Letzten Endes ist „healthy“ gleich oder gar besser als „running“. 🙂
Deine „alten“ Container können bleiben wie sie sind. Portainer ist ja nur eine Verwaltungsoberfläche. Du wirst die bestehenden Container sogar im Portainer sehen und (unter Umständen nur teilweise) administrieren können. Ob der ioBroker mit den Containern reden kann, das liegt dann an deiner Netzwerkkonfiguration. Wenn die die beiden Container im default bridge Netzwerk laufen hast und dieses Netz dann zum Schluss auch dem ioBroker zu weist, dann können die sich auch unterhalten.
Wenn du generell vor hast mehrere Container laufen zu haben, dann kann ich dir die Funktion Portainer Stacks (docker-compose) empfehlen. Muss man sich ein bisschen rein arbeiten, aber macht einem das Leben deutlich leichter.
MfG,
André
Danke Andre für deine Antwort. Alles verstanden werde ich so machen.
Hatte dann gestern den Contaoner wieder gelöscht und wollte ihn gleich nochmals mit meinen MACVLAN erstellen. Allerdings schaffe ich es nicht mehr das der Container läuft. Folgendes Problem:
Nach allen Einstellungen drücke ich „deploy Container“ leider kommt dann immer „portainer cannot create endpoint on configuration-only network“
Was mache ich hier falsch?
Schaffe es nicht mehr einen Container zu erstellen.
LG
Hallo, das wird vermutlich schwierig hier in den Kommentaren jetzt eine Lösung zu finden. Hier gibt es einfach zu viele Unbekannte bezüglich seines Systems. Wie ist die Config deines Netzwerks, Wie ist die Config des Containers usw. Da ich aufgrund deines ersten Kommentars vermute, dass es um den ioBroker Container geht, würde ich dir mal den ioBroker Forum Thread dazu empfehlen. Da lesen viele fähige user mit. Am besten du stellst die Frage mal dort. Zusammen mit den Infos zu deiner Umgebung und was du bereits konfiguriert hast. Alternativ funktioniert auch der ioBroker Discord Channel sehr gut für Support.
MfG,
André
Hallo,
danke für das tolle Tutorial.
Portainer und IoBroker soweit installiert.
Bekomme im Log nur diese Meldung:
s: Zugriff auf ‚/dev/disk/by-id/‘ nicht möglich: Datei oder Verzeichnis nicht gefunden
Wie kann ich das noch beseitigen?
Gruß
Hallo,
sorry, kann dir da leider nicht folgen. In welchem Log bekommst du die Meldung?
Versuchst du irgendwelche USB Devices oder ähnliches in den Container durch zu reichen?
MfG,
André
Ich habe das Kennwort vergessen. Den Container löschen und neu installieren hat nichts gebracht. Was muss ich denn noch löschen, um das Kennwort neu vergeben zu können?
Hallo Andreas,
wenn du beim erstellen des Containers einen leeren Ordner für /data verwendest, dann durchläufst du bei der ersten Anmeldung wieder die Ersteinrichtung. Dabei kannst du dann auch das Kennwort neu vergeben.
MfG,
André
Ein super Beitrag…
Habe es damit endlich geschafft einen Stick an meinen IOBroker Container weiter zu leiten.
Muss danach Portainer weiter laufen? Oder kann ich nach der Einrichtung vom Container mit Portainer alle weiteren Einstellungen wie z.b. neue Ports eintragen über den normalem weg von Docker UI gehen?
Hallo Christian,
natürlich lauft der ioBroker Container weiter wenn du Portainer beendest. Allerdings bleiben die Einschränkungen der Docker UI von Synology ja bestehen. Und da man einen Container nur bedingt ändern kann, stattdessen alles über das Neuanlegen des Containers läuft, wirst du spätestens bei einer Änderung wieder auf Portainer zurück greifen müssen. Mein Empfehlung daher: Synology UI vergessen und stattdessen Portainer nutzen.
MfG,
André
Vielen dank für deine Antwort und großes Lob an deine Anleitungen. Wirklich klasse.
Ich werde dann alles weitere über Portainer erledigen.
Sieht eben auf den ersten Blick etwas viel aus. Nach deiner Anleitung habe ich meine Container über Portainer auch schon geupdatet. Geht wirklich viel einfacher.
Dazu noch eine kleine Frage…
Über die Synology UI im Docker werden die Abbilder von jedem aktiven Container angezeigt. Diese können wenn ein passender Container gestartet ist auch nicht gelöscht werden. Wenn ich nun über Portainer einen Container Update. Wird dann in der Synology UI im Docker die Abbilder auf den neusten stand gebracht? Oder werden diese dann separat über Portainer verwaltet.
Etwas kompliziert geschrieben. Ich hoffe man kann es verstehen 🙂
Hallo Christian,
die Images, wie auch alles andere, werden IMMER vom Docker Daemon verwaltet. Portainer oder die Synology UI sind nur Werkzeuge um den Daemon zu bedienen. Das bedeutet: Löscht du in Portainer ein Image ist es auch in der Synology Öberfläche weg. Meine Empfehlung: Vergiss die Docker Oberfläche von Synology. Hier fehlen teils wichtige Optionen und wenn man sich ein wenig mit Docker im Allgemeinen beschäftigt, dann findet man sich eigentlich schnell und gut in Portainer zurecht.
MfG,
André
Hallo André,
vielen Dank für den aufschlussreichen Beitrag. Mit ssh hat es gut funktioniert. Widme mich nun dem ioBroker.
Hallo André,
sollte Portainer immer aktuell gehalten werden, oder kann man dies vernachlässigen solange ioBroker auf dem aktuellen Stand ist? Bei mir wird im Portainer angezeigt, dass eine neue Version verfügbar ist.
Falls dies ebenfalls ratsam ist, wie sollte ich da genau vorgehen ohne am ioBroker etwas zu verändern?
Danke dir
Hallo Stefan,
ich würde meine Anwendungen generell immer aktuell halten. Das gilt auch für den Portainer. Portainer aktualisieren ist ganz einfach. Einfach den alten Container und das Image löschen und den Container komplett neu anlegen. Die Portainer Konfiguration ist in dem gemounteten Verzeichnis gespeichert und wir nach der Neuerstellung wieder eingelesen/ verwendet.
MfG,
André
Vielen Dank, das war ja sehr einfach 🙂
Man muss sich nur trauen es einfach zu löschen, jetzt ist wieder alles aktuell 🙂
Hallo André!
Vielen Dank für die tolle Erklärung! Es hat mir wirklich weitergeholfen.
Ich habe allerdings noch ein Problem mit einem Bitwardenserver. Hier ist das Netzwerk auf Bridge eingestellt und ich kann es nicht auf Host ändern.
Über die angezeigte IP kann ich auf den Bitwardenserver nicht zugreifen, sondern nur über den eingestellten Port. Wenn ich allerdings einen Reverse Proxy auf meine IP:Port weiterleite, komme ich nicht zum Bitwardenserver sondern erhalten eine Fehlermeldung.
Hast du hier eventuell einen Lösungsansatz?
Danke!
Gruß Timo
Hallo Timo,
was den „Bitwardenserver“ angeht habe ich absolut keine Ahnung. Habe das Wort eben das erste mal gehört und musste erstmal googlen was das überhaupt ist…
Grundsätzlich ist das mit dem „Ändern“ von Containern immer so eine Sache. Im Normalfall muss ein Container immer neu angelegt werden. Bedeutet du musst das Netzwerk gleich beim Starten des Containers korrekt konfigurieren…
Vielleicht solltest du dir nochmal ein bisschen was über Netzwerke unter Docker anlesen. Das kann ich hier jetzt nicht in einem Kommentar erläutern.
In aller Kürze einmal die wichtigsten Netzwerkmodi am Beispiel eines Webservers:
bridge = Aufruf der Webseite über http://[IPoderNAMEdesHost]:[DurchgereichterPORT]
host: Aufruf der Webseite über http://[IPoderNAMEdesHost]:[PORT]
MACVLAN: Aufruf der Webseite über http://[IPoderNAMEdesContainers]:[PORT]
Ein bisschen mehr dazu findest du hier: https://buanet.de/knowledge-base/networking/
Und nochmehr hier: https://docs.docker.com/network/
MfG,
André
Hey Andrè, danke für die gute Erklärung. Ich hab portainer zwar per SSH gestartet, weil ich das unkomplizierter fand, aber es hat alles direkt funktioniert.
Hallo Jens,
schön dass es geklappt hat. Auf jeden Fall ist das Starten per SSH unkomplizierter, wenn man weiß wie. 🙂
Allerdings war das Ziel die Kommandozeile so wenig wie möglich zu bemühen und damit die Umsetzung für Jedermann zu ermöglichen.
Und einen kleinen Nebeneffekt hat es auch noch. Wenn man den Portainer aktualisieren will, braucht man nur den Alten inkl. Image zu löschen und über den Aufgabenplaner die Aufgabe zu starten. Alles über die Weboberfläche des DSM…
MfG,
André
bekomme beim Versuch mit local zu connecten diese Fehlermeldung
Failure
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Hallo Günther,
passiert das wenn du die Weboberfläche vom Portainer einrichten willst? Diese Meldung kommt eigentlich wenn Docker nicht läuft. Kannst du mal schauen ob du das Verzeichnis mit dem docker.sock korrekt in deinen Container durchgereicht hast? Mit welchem Befehl startest du den Portainer Container?
MfG,
André
Hallo Andrê,
ja der Fehler kommt sobald ich mich via local connecten will (Schritt 3 zweites Bild)
Ich habe Docker auf der Synology laufen. Der iobroker Container läuft auch prima.
Beim Einrichten des portainer Container musste ich den lokalen Port von 9000 auf 9020 ändern weil 9000 schon belegt war, den Container-Port habe ich auf 9000 gelassen, ging auch nicht anders. Der portainer Container ließ sich dann im Synology Docker auch problemlos starten.
Ansonsten sind folgenden Einstellungen gesetzt.
Volume > Datei/Ordner = dicker/portainer_data
Volume > Mount-Pfad = /data
Porteinstellungen > Lokaler Port = 9020
Porteinstellungen > Container Port = 9000
Umgebung > Variable Path = /usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Gruß
Günther
Hi,
hat jetzt nachdem ich es nochmal neu gemacht habe doch noch geklappt.
Ich musste den lokalen Port auf 8889 anpassen und nach dem ich den Ordner volume1/docker/portainer_data via Putty und sudo anlegen habe ließ sich der Container starten und der local Web Zugriff hat auch funktioniert..
Vielen Dank für die Hilfe und Tips
Hallo Günther,
ich kann zwar nicht genau nachvollziehen was du jetzt genau gemacht hast, aber es freut mich trotzdem wenn es denn jetzt funktioniert.
Grundsätzlich aber nochmal der Hinweis auf Schritt 2 der Anleitung. Was ich in deiner Konfiguration vermisse ist das eingehängte Verzeichnis: „/var/run/docker.sock“. Das ist der Grund warum man meines Wissens den Container nicht über die Oberfläche der DS starten kann. Dieser Zugriff wird jedoch benötigt, damit der Portainer den Docker Dienst der DS steuern kann.
MfG,
André
Hallo André,
bei mir tritt der beschrieben Fehler auch auf.
Zutat:
„Was ich in deiner Konfiguration vermisse ist das eingehängte Verzeichnis: „/var/run/docker.sock“.“
Die Verzeichnisse habe ich nicht gefunden. Kannst du mir bitte sagen, wo die Verzeichnisse sein sollten oder wie ich die Konfiguration überprüfen kann.
Ich habe den Port auch auf 8889 geändert.
Hallo Frank,
so richtig kann ich deiner Frage nicht folgen. Hast du alles wie im Tutorial gemacht? Hast du auf dem Host mal geschaut ob dort die Datei „/var/run/docker.sock“ existiert?
Was für ein System nutzt du? Ggf. liegt die docker.sock bei dir woanders. Falls dem so ist, musst du zwingend den entsprechenden Pfad in den Container durch reichen. Sonst wird dein Portainer nie Zugriff auf den Docker Daemon haben und ihn somit auch nicht verwalten können…
MfG,
André
Vielen Dank für die gute Erklärung der Installation. Ich habe damit auch den IOBroker installiert bekommen. Jetzt wollte ich ein zweites Docker Image (openHAB um die beiden zu vergleichen) installieren und habe wohl in der Konfiguration einen Fehler gemacht. Den Docker Container habe ich noch nicht installiert, aber ich habe zwei Netzwerke (_config), die ich nicht mehr löschen kann. Ich bekomme die Meldung, dass sie „in use“ sind. Von der Kommandozeile sieht das so aus:
Error response from daemon: error while removing network: configuration network „openHAB_pub_config“ is in use
Das netz hängt aber noch nicht an einem „_pub“-Netz und auch nicht an einem Container (hier der Auszug aus docker network inspect):
„Containers“: {},
Hast Du eine Idee, wie ich das bereinigen kann?
Hallo Friedhelm,
dazu gab es schon mal was im ioBroker Forum Thread. Ich selbst habe das noch nicht hin bekommen. Schau mal hier. Ggf. dort auch mal um Hilfe fragen.
MfG,
André
Danke André. Dann muss ich den Docker wohl auch mal neu installieren.
BTW: Kann ich auch ein virtuelles Netz über die NAS routen?
Also die DS hat 192.168.1.100
Dann route ich auf der Fritz!Box das Netz 192.168.2.0/24 auf die DS und definiere dann im Docker z.B. /28er Subnetze, damit ich da mehrere voneinander getrennte Docker Images laufen lassen kann? Oder zur Not auch einfach alle Container im 192.168.2.x definiere?
Hallo Friedhelm,
ich bin mir nicht sicher ob das so funktioniert. Bisher habe ich immer nur im gleichen Netz Adressen vergeben.
Also zum Beispiel so:
MfG,
André
Hallo Friedhelm, hallo André,
ich habe leider auch noch zwei „Netzwerkleichen“ unter Portainer, die ich nicht loswerde. Eher ein „optischer Makel“, aber es stört mich. Falls ihr noch auf eine andere Lösung als das Neuinstallieren kommt, sagt doch hier mal bescheid. Ich bekomme in der Shell mit network inspect auch keine verbundenen Container angezeigt, trotzdem funktioniert weder auf der Kommandozeile das entfernen mit „network prune“, „network rm“ noch das Netzwerk entfernen auf Portainer. Irgendwo muss ja der Verweis in einer Konfigurationsdatei stehen, aber ich komme leider nicht dahinter wo. Das wurmt mich jetzt schon seit mehreren Wochen, aber ich finde keine Lösung 🙂
Viele Grüße, Simon
Hallo. Ich bringe ihn zum laufen, dank deiner Anleitung. Leider sieht er keinen meiner bisherigen angelegten Container. Liegt es daran, dass diese im „host Modus“ laufen und nicht wie Portainer im „Bridge Modus“?
Vielen Dank für Deine/Eure Hilfe!
Beste Grüße
Enrico
Hat sich erledigt! Jetzt sind plötzlich alle zu sehen.
Hallo Enrico,
das ist das Leid mit der DS. Leider ist das Docker-Paket von Synology in manchen Situationen nicht so prall… Habe schon häufiger gehört, dass Docker auf der DS sich manchmal seltsam verhält. Meist hilft ein Reboot der DS…. behalte das ruhig im Hinterkopf, falls es mal wieder seltsame Phänomene in Bezug auf Synology – Docker – Portainer gibt.
MfG,
André
Werde ich machen 🙂 Lieben Dank!
Viele Grüße
Enrico
Hallo, ich habe nach erfolgreichem einrichten folgenden Fehler im Log vom Portainer:
[WARN] [docker,snapshot] [message: unable to snapshot engine version] [endpoint: local] [err: Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39]
Was kann ich tun? Was soll das eigentlich bedeuten?
Vielen Dank!
Hallo Marco,
ist mir bisher gar nicht aufgefallen. Wie hier zu lesen ist, handelt es sich um einen bekannten Bug im Portainer.
Scheint nichts tragisches zu sein. Ich hab es bisher nicht bemerkt, weil ich keinerlei Einschränkungen in der Funktion vom Portainer habe.
An der Behebung des Bugs wird bereits gearbeitet.
MfG,
André
Failure Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Startet nicht habe den Docker auf Volume 2 den text mit volume 1 hab ich auf 2 geändert Docker startet den container auch nicht automatisch mit dem Aufgabenplaner muss Ich da was anpassen…
docker run -d -p 8889:9000 –name portainer –restart always -v /var/run/docker.sock:/var/run/docker.sock -v /volume2/docker/portainer_data:/data portainer/portainer Lg
Habe den container neu gestartet jetzt gehts vielen lieben dank für deine Arbeit das (Tut) is echt sehr sehr gut Danke
Erstmal vielen Dank für die tolle Anleitung. Ich habe vor einiger Zeit portainer erfolgreich installiert. Nun gibt es wohl ein update und ich frage mich nun wie man portainer selbst updaten kann? iobroker geht ja ganz einfach über recreate das funktioniert aber bei portainer nicht. Über eine Antwort würde ich mich freuen.
MfG Michael
Hallo Michael,
ganz einfach: Portainer Container und Portainer Image löschen (am besten über die Docker-Oberfläche des DSM) und den Befehl zum Starten des Portainer erneut ausführen.
Im Prinzip wie das neu Anlegen, nur dass du dein Mount-Verzeichnis mit den Portainer Konfigurationsdaten ja schon hast.
MfG,
André
Hallo und danke!
Hast Du vielleicht einen Verweis auf eine ausführlichere Anleitung zum Update vom Portainer, da ich aus dieser Information nicht schlau werde.
Grüße
Michael
Hallo Michael,
ich wüsste nicht was es da an weiteren Ausführungen bedarf. Du löscht den alten Portainer-Container und das Portainer-Image von der DS. Dein Ordner „portainer_data“ bleibt wie er ist! Dann führst du den Befehl zum Erstellen des Containers (siehe oben) erneut aus. Das aktuelle Portainer Image wird automatisch geladen und der Container erstellt…
MfG,
André
Hallo, ich bin der Anleitung gefolgt und nach dem Aufgabenplaner ist auch der container portainer da, allerdings kann ich diesen nicht anschalten, er ist immer angehalten. Bekomme die Rückmeldung Docker-API ist fehlgeschlagen.
Nach der Variante den Befehl in putty einzutragen kommt folgendes:
docker: Got permission denied while trying to connect to the Docker daemon socket
at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create?name=portainer: dial unix /var/run/docker.sock: connect: permission denied.
Ich muss zugeben nachdem ich in der Hilfe nachgeschlagen habe, kann ich damit nichts anfangen.
Hast du einen Tip ?
Hallo Thiemo,
führst du den befehl auch als root aus?
Sieht mir nach einem Berechtigungsproblem aus. Goofle mal „/var/run/docker.sock: connect: permission denied“. Bei mir hält der erste Treffer gleich eine mögliche Lösung bereit.
MfG,
André
Hi Thiemo,
ich hatte eben auch die Meldung. Du musst dich zuvor mit „su sudo root“ als root anmelden.
Gruß
Stefan
Hallo zusammne, nachdem ich auch das Problem habe das Docker API fehlschlägt. Hab eich mich über Putty angemeldet. Username root. siehe Putty verlauf hier: Am ende dann die Fhelermeldung. Ich komme nicht weiter. Kann jemand helfen bitte ?
Danke !
Using username „root“.
Authenticating with public key „imported-openssh-key“
Passphrase for key „imported-openssh-key“:
Wrong passphrase
Passphrase for key „imported-openssh-key“:
root@Black_Beauty:~# su sudo
su: user sudo does not exist
root@Black_Beauty:~# su sudo root
su: user sudo does not exist
root@Black_Beauty:~# docker run -d -p 9000:9000 –name portainer1 –restart alwa ys -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/portainer_dat a:/data portainer/portainer
aacfddcaa2fb0e11b1e8f8c5a578dc2c1cd5119cf11de37ef32ae23ff0649933
docker: Error response from daemon: driver failed programming external connectiv ity on endpoint portainer1 (9522d9e4c153f2dbf2b303363979cdbca3bce288984c70947612 4133b97afa39): Error starting userland proxy: listen tcp 0.0.0.0:9000: bind: add ress already in use.
root@Black_Beauty:~#
Hallo Sascha,
hast du das hier gelesen: „listen tcp 0.0.0.0:9000: bind: add ress already in use.“? Und auch verarbeitet? 🙂
Auf deutsch heißt das so viel wie, dass dein Port 9000 bereits belegt ist. Ich meine auch einen entsprechenden Hinweis im Tutorial zu haben… ungefähr so:
„Hinweis: Es kann sein, dass der Port 9000 auf der DS bereits in Verwendung ist. Sollte dies der Fall sein kann man den Port ganz einfach umleiten. Dazu im docker-run-Befehl einfach „-p 9000:9000“ durch z.B. „-p 8889:9000“ ersetzen. Die Portainer-Weboberfläche (siehe weiter unten) ist dann natürlich unter „http://[IP_oder_Name_der_DS]:8889“ zu erreichen.“
Viel Erfolg.
MfG,
André
Hallo Andre,
danke Dir. Ja, normalerweise versuche ich den Fehler immer selber zu lösen bevor ich frage 😉 Aber das war ja das Problem. Ich belege „eigentlich“ 9000 nicht und habe vor meiner Frage auch 9090 probiert, welchen ich eigentlich auch nicht belege. Zu guter letzt habe ich jetzt einmal 9099 probiert und damit ließ der Container sich anlegen. Jetzt schau ich mal weiter. PS: Für alle mit Ähnlchem Problem. Wenn LMS installiert ist könnte dies mit dem 9000 Port zu tun haben (obwohl in meiner konfig der LMS auf 9002 läuft).
VG Sascha
wo genau soll ich mich als root anmelden umd diese API Fehlermeldung wegzubekommen?
Hallo,
vielen Dank für das super TUT.
Noch versuche ich den USB Port von der Synology über den Portainer an den Docker durchzuschleifen.
Aber bisher leider ohne erfolg.
Ich war der meinung es müsste im Portainer über Runtime & Ressourcen klappen, aber vlt gebe ich da die falschen Daten.
Hintergrund: Ich möchte meinen Stromzähler wieder auslesen können.
Wäre dankbar, wenn mir jemand helfen könnte.
Danke
Hallo,
schaue mal bitte in den Forum Thread. Dort haben wir das Thema gerade Ende letzten Jahres durch. Ich habe dazu auch schon was im aktuellen Beta eingebaut…
Runtime & Resources ist schon mal korrekt. Allerdings musst du innerhalb des Containers noch die korrekten Berechtigungen setzen…
MfG,
André
Hallo André,
Vielen Dank für die Antwort.. ich habe mir heute auch den Thread komplett durchgelesen.
Aber leider fehlt mir anscheinend die notwendige Kenntnis die Berechtigungen richtig zu setzen.
Ich habe mir auch die Beta runtergeladen und versucht die Ports im ENV einzutragen.
Vlt kann mir nochmals jemand helfen.
Ich nutze DS918+.
Vielen Dank
Hallo Thomas,
Die Berechtigungen setzt du im Container so:
chown root:dialout /dev/ttyACM0
chmod g+rw /dev/ttyACM0
Siehe auch die Diskussion hier.
Oder du nimmst die ENV „USBDEVICES“ in der aktuellen Beta. Dann werden die Berechtigungen beim Start automatisch gesetzt.
details siehe hier.
MfG,
André
Hallo Andrè,
vielen Dank für deine Bemühungen und Geduld.
Zu Punkt 1, Berechtigungen im Container:
Meine bisherige Vorgehensweise bringt keinen Erfolg. Ich gehe im Portainer auf die Console, starte diese, Da ich dann im Pfad: „root@XXX:/opt/iobroker#“ bin, wechsele in mit dem Befehl cd in:
„in root@XXX:~#, in dieser Zeile habe ich dann die den ersten Befehl „chown root:dialout /dev/ttyACM0“ eingegeben, aber dann komm die Meldung „chown: zugriff auf
/dev/ttyACM0
nicht möglich; Datei oder Verzeichnis nicht gefunden.Zu Punkt 2, ich habe die Beta installiert, alten Container gestoppt. Da habe ich in ENV “ USBDEVICES“ die Eintragungen vorgenommen: „/dev/ttyACM0;/dev/ttyACM01“, dann hatte ich in meiner Instanz auch 4 Ports zum Auswählen, was vorher nie ging. Aber jeder Port brachte im Log File des Iobroker eine Timeout meldung.
Könntest du mir sagen, wo meine Fehler liegen?
Gibt es Möglichkeit in der Console die USB Schnittstellen auszulesen.
nochmals vielen Dank
Thomas
Hallo André,
was mir eben noch aufgefallen ist, wenn ich im Beta Container unter ENV > USB Devices > Value : dev/ttyACM0;/dev/ttyACM0 eintrage, betätige ich danach die „deploy the container“.
Wenn der Container dann gestartet ist, sind die eintragungen in ENV nicht mehr da
Hallo André, ich habe gesehen, dass du auch im Forum sehr aktiv bist und hoffe auch auf Vorschläge anderer, daher habe ich mich nochmals an Forum gewendet.
Vielen Dank bisher.
https://forum.iobroker.net/topic/28658/docker-iobroker-usb-device-synology-ds918-pass
Hallo Thomas,
bist du dir sicher dass deine Devices so heißen wie du sie eingetragen hast? Wechsle in der Kommandozeile mal in das Verzeichnis /dev und mache ein ls. Auch auf der Kommandozeile der DS. Denn du musst ja wissen welches Device du durchreichen willst.
Was dein ENV-Value für USBDEVICES angeht, wieviele Devices möchtest du denn durchreichen? Wenn der Wert aus deinem letzten Post stimmt, konfigurierst du im container zwei mal das selbe deivice (/dev/ttyACM0)….
Noch ein kleiner Hinweis. Bei Portainer gibt es aktuell noch einen Bug, dass Änderungen bei den ENV unter Verwendung des Buttons „edit/ duplicate“ nicht übernommen werden. Hier musst du in diesem Fall einen neuen Container erstellen.
Sollten dir diese Hinweise nicht ausreichen, poste bitte im Forum-Thread Screenshots von deiner Container config (Ressourcen und ENV) sowie einen Logauszug nach dem Start des Containers.
MfG,
André
Edit: hat sich wohl überschnitten… 🙂
Hallo,
danke für das Tutorial.
Beim ersten Versuch hat es nicht funktioniert. Im Log des Docker stand, dass der Port 9000 belegt ist.
Dann habe ich den Container wieder gelöscht und das Script angepasst. Anstatt 9000, habe ich 9090 genommen.
Der Container wurde sofort erstellt und läuft auch.
Nun kann ich allerdings die Oberfläche nicht erreichen.
http://lokaleIP:9090 öffnet den Portainer nicht.
Kann mir jemand helfen?
sorry, habe es hinbekommen. Musste natürlich 9090:9000 eingetragen werden und nicht 9000:9090
Hallo, bin von einer „normalen“ Installation auf einer alten Synology ohne Docker und Rasberry Pi 2 jetzt hoffentlich eine zeitlang „umzugsfrei“….Vielen Dank für die Super-Anleitung, ohne Supporter wie dich säße ich wohl weiter im Dunkeln!
Danke für die tolle Anleitung!
Hallo, vielen Dank für die Super Anleitung. Ich habe nur leider ein Problem. Sobald ich meine Synology Neustarte ist der erstellte Container (Iobroker) verschwunden. Ebenfalls kann ich die Container nicht stoppen dann verschwinden Sie auch. Ein neustarten des Container funktioniert ohne Probleme. Hab das ganze auch schonmal neuinstalliert leider ohne Erfolg gleiches Syntom. Evtl eine Idee?
Hallo Tobias,
das habe ich so bisher noch nicht gehört. Vielleicht sagt Google was dazu. Andernfalls fällt mir nur der Synology-Support ein.
MfG,
André
Hallo, vielen Dank für die tolle Anleitung. Ich habe den Portainer auf meinem QNAP TS-251+ installiert. Ich habe den Weg via Putty SSH genommen und habe die Parameter für die QNAP ein wenig anpassen müssen, da die shares anders sind als auf der DS. Aus „-v /volume1/docker/portainer_data:/data“ , war dann bei mir „-v share/Container/portainer_data:/data“. Damit hat es geklappt. Jetzt will ich auch noch IoBroker installieren und werde Dein Tutorial weiter nutzen.
Danke Jens
PS: Da Ich kein NAS und IT-Experte bin, noch eine kleine Frage…. Ist es sicher dass der Portainer nur via Login/Password abgesichert ist? Die Website zeigt ja an.
Hallo Jens,
schön dass es geklappt hat. Allerdings verstehe ich deine Frage nicht so recht. Portainer ist über Login und Kennwort abgesichert. Das ist korrekt. Erreichbar sollte die Weboberfläche nur aus dem Heimnetz sein (solange du keine entsprechende Portweiterleitung einrichtest). Denke das reicht als Sicherheit aus…
MfG,
André
Hi zusammen,
nach der(Super) Anleitung konnte ich den portainer installieren.
Jetzt möchte ich noch den iobroker installieren, habe aber festgestellt, im Log des Containers, dass es wahrscheinlich ein Problem gibt:
2019/11/05 13:58:06 Templates already registered inside the database. Skipping template import.
2019/11/05 13:58:06 Starting Portainer 1.22.1 on :9000
2019/11/05 13:58:06 server: Reverse tunnelling enabled
2019/11/05 13:58:06 [DEBUG] [chisel, monitoring] [check_interval_seconds: 10.000000] [message: starting tunnel management process]
2019/11/05 13:58:06 server: Fingerprint ee:3c:ee:e3:1d:d8:9b:af:46:01:00:e6:49:5a:42:b6
2019/11/05 13:58:06 server: Listening on 0.0.0.0:8000…
2019/11/05 14:07:57 http error: Invalid JWT token (err=Invalid JWT token) (code=401)
2019/11/05 14:07:57 http error: Unauthorized (err=Unauthorized) (code=401)
2019/11/05 14:07:57 http error: Unauthorized (err=Unauthorized) (code=401)
2019/11/05 14:07:57 http error: Unauthorized (err=Unauthorized) (code=401)
Wie gesagt auf die Page (9000) komme ich und konnte auch den Admin einrichten.
Frage: Was bedutet dies? Und was muss ich noch machen?
Danke.
BLRD
Hallo,
habe gerade mal in meinen Log im Portainer geschaut. Habe diese http error Meldungen auch. Ist mir bisher aber nicht aufgefallen. 🙂 Und funktionieren tut eigentlich auch alles. Müsste man mal ne Google-Suche starten…
Letztendlich ist Portainer aber ja nur eine Management Oberfläche. Das heißt es besteht keinerlei Abhängigkeit zu anderen Containern. Wenn du Container laufen hast (z.B. iobroker) kannst du auch ohne Probleme Portainer abschalten, löschen, updaten oder sonst was. Das juckt den/ die anderen Container überhaupt nicht.
MfG,
André
Vielen Dank für das HowTo – funktioniert einwandfrei
Hallo Markus,
danke für das positive Feedback!
MfG,
André
Moin, tollte Tut! Wie update ich denn das Ganze? Image löschen und Container neu bauen? Die Daten bleiben ja erhalten.
Hallo Olli,
genau das ist der Weg zum Update des Containers. Die Adapter/ js-controller musst du natürlich manuell updaten. Die liegen ja im iobroker-Verzeichnis.
MfG,
André
Moin André, danke, und wie schaut’s aus dem Portainer Container selber? Grüße Olli
Genauso. Ist ja auch nur ein Container. Einfach über die DS löschen und wie im Tutorial mit dem Befehl neu erstellen. Die anderen Container (z.B. ioBroker) laufen dabei sogar einfach weiter…
MfG,
André
Hallo André,
vielen Dank für die sehr gute und ausführliche Anleitung.
Wenn ich einen kleinen Hinweis anbringen darf: unter Schritt 2: Container starten, 2. Absatz muss es „docker.sock“ anstatt „portainer.sock“ heißen. 😉
Schönen Gruß
Winfrid
Hallo Winfrid,
danke für den Hinweis. Habe es gleich angepasst. Zum Glück ist es im Befehl dann richtig… 🙂
MfG,
André
Vielen Dank für die ausführliche und sehr gut nachvollziehbare Dokumentation. Ich konnte auf Anhieb alles zum Laufen bringen. Daumen hoch für deine Mühe!
Danke für dein Feedback. Freut mich dass alles geklappt hat.
MfG,
André
Hallo André,
habe ein ioBroker Image im Docker auf einer Synology DS am Laufen. Bei der Installation habe ich mich genau an das Tutorial von Dir gehalten. Dafür ein großes Dankeschön von mir.
Habe zwar nicht alles verstanden warum man das so macht, aber es hat Alles geklappt.
Ich habe im Docker der DS ein Portainer- und anschließend ein ioBroker-Container installiert.
Der ioBroker läuft über macvlan mit eigener IP im Netz und ist auch erreichbar. Vor kurzem kam nun die Meldung im ioBroker, dass es eine neue Version des admin-Adapters gibt. Ich habe den admin-Adapter aktualisiert und damit begann mein Problem.
Seit dieser Aktualisierung kann ich ioBroker im Browser nicht mehr aufrufen. Er meldet nur Fehler: Verbindung fehlgeschlagen. Sowohl mit versch. Browsern als auch unter Win oder Linux. Allerdings kann man ihn anpingen und im Router wird er auch angezeigt. Im Portainer scheint auch alles zu Laufen.
Ich habe ihn über den Portainer mehrfach neu gestartet, das Image .latest neu herunter geladen und neu created aber leider ohne Erfolg. Daraufhin habe ich mit dem Befehl ./iobroker upgrade admin@Vers.-Nr. versch. Ältere Versionen des Adapters installiert, leider auch keinen Erfolg.
Der ioBroker läuft, über die Console und Portainer habe ich Zugriff, aber die admin-Oberfläche läßt sich im Browser nicht anzeigen. Für Hilfe wäre ich dankbar.
Gruß Rustus
Hallo Rustus,
schwer zu sagen was genau dein Problem ist. Hast du nach den Meldungen (z.B.) im Log oder beim Starten schon mal im Forum gesucht? Im Docker Container kannst du agieren wie auf jedem anderen Linux auch. Mögliche Lösungen wären das Ausführen des „reinstall.sh“-Scripts oder ein „npm rebuild“. Einfach mal im Forum schauen. Wenn alles nichts hilft, dann schaue mal im Forum-Thread vorbei und poste mal deinen Log…
MfG,
André
Hallo André,
habe heute nach lesen im Forum den Befehl „iobroker list instances“ gefunden und ausprobiert.
Nachdem ich gesehen habe, dass der admin-Adapter auf disable gestanden ist, warum auch immer, habe ich versuchsweise den Befehl“ iobroker start admin“ eingegeben und Bingo!- der admin Adapter läuft wieder. Danke für Deine Hilfe und Tipps.
Gruß Rustus
Hallo Andre,
leider bekomme ich den protainer net zum laufen.. Wenn ich den Befehl im Aufgabenplaner starte passiert nix unter „Docker – Container“ läuft nix…
Auch mit dem Port 8889 nix…kann das seine das die DS den befehl irgendwo blockiert?
Danke
LG Jan
Hallo Jan,
da hab ich jetzt so aus der Ferne keine wirkliche Diagnose zu. Haber bisher nicht gehört, dass es so nicht klappt…
MfG,
André
Hallo Andre,
also ich hatte das mal laufen als Doker….ohne Probleme dann habe ich ein bisschen mit Node Red herumgespielt und habe den IO Broker etwas vergessen. So dann wollte ich den Broker mal wieder zu laufen bringen und er ging nicht….dann habe ich dieses Anleitung sehen und das es ein neues Vorgehen gibt….leider habe ich den Protainer nicht zu laufen gebracht…..
dann habe ich einfach Dein letzt Image in den Doker gezogen und dan lief es…..
Gut für mich aber was ich nicht verstehe warum die Sache mit den Portainer?
Danke
LG Jan
Hallo Jan,
ich dachte dazu hätte ich im ioBroker-Tutorial was geschrieben. Die Docker-Admin-Oberfläche im DSM ist recht spartanisch. Im Portainer hat man da deutlich mehr Möglichkeiten. Deshalb empfehle ich auf der DS den Portainer.
MfG,
André
Super Anleitung.
Hat auf anhieb alles funktioniert!
Danke!
Hello,
It seems like after latest update (27.08.2019) of Synology Docker package Portainer is not working anymore.
On my configuration (fresh installation 4 days ago) Portainer not more accessible. Could you please check?
Thank you!
Hi,
I’m sorry for that. But I had no problems with the update. Just updated the synology docker package on my testing environment. Everything works fine (including portainer). Maybe you can recreate the portainer-container. Make sure you delete the old portainer-image and reload it from docker hub for the newest version of portainer.
Regards,
André
Hallo,
danke für die Hilfe.
Portainer läuft inzwischen.
Jedoch ist unter local kein grünes Zeichen mit UP zusehen,sondern ein rotes down.
wie bekomme ich das hin?
MfG Alex
Hallo Alex,
dann hat Portainer wahrscheinlich keinen Zugriff auf den Docker-Daemon. Hast du dich an die Anleitung gehalten? Wie startest du den Portainer-Container?
MfG,
André
ich habe auch das gleiche Problem. Es hat monatelang funktioniert. Hatte wohl den Container deaktiviert und wieder aktiviert. Jetzt bleibt der local down.
Ich bekomme es nicht zum laufen.
Im Docker-Fenster unter „Überblick“ steht unter aktive Container „portainer“ mit CPU und RAM Angaben. Im „Protokol-Fenster“ steht „Start container portainer“. Unter „Netzwerk“: Bridge 1 verbundener container“. Soweit läuft „da“ was.
Gehe ich auf die Desktop-Verknüpung „Docker/portainer“ und unter „Protokoll“ steht dort auch eín Eintrag „Starting Portainer 1.21.0 on : 8999“. Nach 5 min bebendest sich der Portainer mit demHinweis, dass kein Admin eingetragen wurde. Scheint auch zu laufen.
Versuche ich mit dem Browser auf den Portainer mit „http://192.168.xxx.xxx:8999“ zu kommen, erhalte ich einen Seiten-Ladefehler. Firewall- und Virensoftware habe ich ausgeschaltet.
Warum klappt das nicht? Hat einer der geschötzten Leser hier noch ein Tipp für mich?
Hallo Guido,
mit welchem Kommando startest du den Portainer-Container? Oder schaue mal auf welchen Port der Container mappt (im DSM > Container Details > Überblick > Port-Einstellungen)…
MfG,
André
Habe das selbe Problem,
bitte um hilfe.
Hallo Alex,
kannst du meine Frage beantworten? Mit welchem Kommando startest du den Portainer-Container?
MfG,
André
Mit dem aus der Anleitung oben,also die Aufgabenplanung der DS. Hab die portänderung alles schon versucht. Ich erreiche die weboberfläche nicht. Aber der Container läuft.
MfG Alex
Vielleicht ein Firewall Thema? Wüsste jetzt nicht was da noch schief gehen könnte.
MfG,
André
Hallo, ich habe das selbe Problem mit meiner DS218+.
Der Container läuft, aber ich komme nicht auf die Weboberfläche.
Gestartet über den Aufgabenplaner, lokaler Port 8889, Container Port 9000 laut der Docker Übersicht.
Auf die Weboberfläche vom ioBroker komme ich ohne Probleme. Hatte zuvor schon mal openHAB und HomeAssistent als Docker laufen, die waren auch ohne Probleme zu erreichen.
Hi, ich habe es nun wiederholt versucht, um einen Fehler meinerseits bei der Einrichtung auszuschließen, jedes mal vorher alles komplett gelöscht, auch den Inhalt im portainer_data Ordner. Aber ich komme nicht auf die Weboberfläche.
Einmal habe ich den Container zum Spaß über Docker gestartet, da kam ich auf die Oberfläche. Aber den Container habe ich auch wieder entfernt, um es dann erneut nach deiner Anleitung zu machen, leider wieder mit dem Ergebnis, dass die Oberfläche nicht erreichbar ist.
Die Firewall der DS ist deaktiviert.
Hallo Thorsten,
aus der Ferne ist so eine Analyse immer schwierig. Wie sieht es denn aus, wenn du den docker run Befehl statt über die Aufgabenplanung direkt über die Kommandozeile der DS aufrufst? Der Weg über die Aufgabenplanung ist ja nur ein „ich vermeide die Kommandozeile“ Weg. Da bekommst du natürlich keine richtige Rückmeldung wenn was schief läuft. Auf der Kommandozeile schon…
MfG,
André
Hi, vielen Dank für die schnelle Antwort.
Ich werde das morgen versuchen. Hab ich schon lange nicht mehr gemacht, muss ich mir erstmal wieder einrichten 😉
VG
Hi,
hab heute nochmals alles entfernt und Portainer neu heruntergeladen und per Putty gestartet.
Läuft auf Anhieb.
Vielen Dank
Hallo Andé,
ich habe auf meiner Synology nun in Portainer einen iobroker-Container mittels MACVLAN (gemäß Deiner hervorragenden Anleitung) unter 192.168.1.222 am laufen. Die Synology selbst hat 192.168.1.225.
Leider komme ich von Außen aber über OpenVPN (auch auf der Synology) unter der dem OpenVPN-Client zugeteilten 192.168.3.6 nicht auf 192.168.1.222:8081 bzw. 192.168.1.222:8082.
Pingen kann ich die 192.168.1.222 von der 192.168.3.6 aus, aber mehr geht nicht.
Muss ich da noch irgendwo eine Brücke schlagen?
Danke und Gruß
Michael
Hallo Michael,
das Problem wird sein, dass du die IP-Adressen von DS und ioBroker (MACVLAN) auf dem selben Netzwerkdevice liegen hast. Wie ich auch im Tutorial geschrieben habe, ist deshalb keine direkte Kommunikation zwischen DS und ioBroker möglich. Das geht einfach routingtechnisch nicht. Das Problem lässt sich aber meines Erachtens auf zwei Wegen lösen: Entweder du hängst die DS mit einem zweiten Netzwerkadapter ins Netz und verlegst dein MACVLAN dort hin, oder du weist dem ioBroker-Container ein zusätzliches Bridge-Netzwerk zu. Hatte ich im Forum auch schon mal beschrieben.
MfG,
André
Hallo André, die Anleitung ist echt top. Leider liegt bei mir irgendwo der Wurm drinnen. Gehe ich nach Anleitung vor und gebe den Befehl via PuTTY ein, dann verhindert der bereits zuvor installierte Container die Ausführung der Anweisung. Deinstalliere / benenne ich diesen um, bildet er aufgrund der Anweisung einen neuen Container (portainer) ohne einen Benutzer (verlangt aber „irgendwelche“ Zugangsdaten. Hab’s n paar Mal getestet… keine Ahnung (ioBroker hat auch nicht funktioniert). Ohne Anweisung ist der Container „down“ weil er keinen Zugriff hat… trotzdem merci
Hallo,
leider kann ich deinen Ausführungen nicht folgen. Verstehe nicht so recht wo es klemmt. Wenn du den Portainer-Container über Putty erstellst, dann sollte da noch kein gleichnamiger Container vorhanden sein… Vielleicht beschreibst du es einmal etwas genauer oder du postest mal im ioBroker-Forum mit ein paar Screenshots.
MfG.
André
Hi André, war wohl das heiße Wetter 😉 hab’s heute nochmals in aller Ruhe und mit ein paar gekühlten Bierchen getestet, nachdem ich alle Container (portainer / iobroker) zuvor aus Docker entfernt hatte. Ging dann auf Anhieb und funktioniert jetzt einwandfrei (auch Dank deiner Anleitung). Werde mich dann in nächster Zeit tiefer einarbeiten. Vielen Dank nochmals 😉
Hallo André,
ich konnte Dank deiner Anleitung Portainer und auch ioBroker erfolgreich bei mir einbinden.
Vielen Dank dafür .
Jetzt zeigt mir Portainer, dass eine neue Version verfügbar ist.
Wie kann ich hier ein Update durchführen, ohne dass alle Einstellungen weg sind?
Vielen Dank schonmal.
Gruß Philip
Hallo Philip,
sofern du nach meiner Anleitung vorgegangen bist und das Portainer-Data-Verzeichnis außerhalb des Containers (auf der DS) liegt kannst du das ganz einfach über den DSM machen:
– Portainer-Container stoppen und löschen
– Portainer-Image unter „Abbild“ löschen
– Portainer-Image unter Registrierung neu laden
– Über den Aufgabenplaner oder die Kommandozeile (wie in der Anleitung beschrieben) einen neuen Portainer-Container starten.
Fertig.
MfG,
André
Vielen Dank…hat wunderbar funktioniert 🙂
Hallo André,
vielen Dank für das Tutorial. Eigentlich wollte ich nur IOBroker auf die Synology bekommen. Habe mir dann aber gleich den Portainer mit angeschaut.
Mein Portainer sieht jetzt genau so aus wie in deinem letzten Bild. Im IObroker Tutorial hats Du aber auf der linken Seite jede Menge links mehr. Wie bekomme ich die dahin. damit ich auch die Auswahl treffen kann?
Hallo Guido,
was du siehst (auf dem letzten Bild) ist die „Host-Ansicht“. Klicke mal auf den blauen Wal, oder irgendwo in das Kästchen wo „local“ (mit dem grünen „up“ daneben) steht.
Die Host-Ansicht ist praktisch ein Überblick über die Hosts. In diesem Fall nur einer mit namen „local“. Wählst du diesen aus, siehst du was auf diesem Host alles los ist. Zum Beispiel Container, Networks und Volumes.
Hoffe ich konnte das einigermaßen erklären. 🙂
MfG,
André
Hallo Andre,
vielen Dank das hat alles geklappt.
leider startet der Docker Container nicht die dienste kommen nicht hoch. In der Konsole bekomme ich folgende Fehlermeldung
sudo: Hostname IOBroker kann nicht aufgelöst werden
sudo: Die Audit-Nachricht kann nicht gesendet werden: Unbekannter Fehler -1
den ersten Fehler bekomme ich noch über einen Eintrag in der hosts Datei gelöst. Allerdings ist der nach einem Reboot nicht mehr vorhanden.
beim 2 Fehler Google ich mir die Finger wund leider ohne Erfolg.
Hast Du da eine Idee
Sorry das ich sowas fragen muss aber das ist meine erste Docker installation.
Hallo Guido,
lass mich raten. Du nutzt als Netzwerk das Host-Netzwerk („gleiches Netzwerk wie Host verwenden“)? Wie in der neuen Anleitung für V3 (Link) beschrieben funktioniert dieser Modus mit V3 aktuell nicht. Grund ist eine veraltete Kernel-Version im Synology DSM.
MfG,
André
Ich habe die V3 und als Host installiert -> funktioniert. Hab echt keinen Plan von sowas. Einfach gemacht und geht. DSM Version 6.2.2-24922
Hallo André,
kurze Frage dazu, mein Portainer läuft ohne Probleme, unter anderem Dank deines Tutorials.
Gibt es beim Portainer die Möglichkeit mehrere Container zu verbinden?
Beispiel, habe PHPiAm zur IPVerwaltung als Container und ein Container mit MySQL, mithilfe eines anderen Tutorials konnte ich die per Befehlszeile verbinden.
Wollte dies aber mal im Portainer nachvollziehen, finde da aber keinen Eintrag. Auch Google hilft nicht viel weiter, wie es scheint, kann Portainer das nicht?!
Gruß Thomas
Hallo Thomas,
das geht zum Beispiel über ein gemeinsames (virtuelles) Netzwerk. Am Besten du erstellst dazu ein eigenes Bridge-Netzwerk (im Standard-Bridge-Netzwerk gibt es leider keine Namensauflösung!). Als IP-Bereich wird beim Erstellen glaub ich schon 172.18.0.0 vorgeschlagen. Das habe ich verwendet. Wenn das Netzwerk eingerichtet ist, weist du es den Containern die sich unterhalten sollen zu. Anschließend solltes du von einem Container zum anderen pingen können (auf Name und IP).
Wenn deine Container schon in einem gemeinsamen (Standard-)Bridge-Netzwerk hängen, dann sollten sie sich mit den IP-Adressen bereits erreichen…
Übrigens, was du mit dem „Verbinden“ ansprichst, ist ein altes Feature („link container“, mehr hier). Das sollte man nach Möglichkeit nicht mehr verwenden.
MfG,
André
Hallo André,
Danke für Deine Antwort 🙂
Das werde ich mal testen, ist ja dank Container eben erstellen etc ganz simple und schnell gemacht.
Genau das war das link Container, der Befehl war im Grunde der hier:
$ docker run -ti -d -p 80:80 -e MYSQL_ENV_MYSQL_ROOT_PASSWORD=my-secret-pw –name ipam –link phpipam-mysql:mysql pierrecdn/phpipam
Ich habe mir das ja so zusammengesucht, war auf der Suche nach einer IP-Verwaltung ohne viel Aufwand, denn so langsam wird das Netzwerk doch immer voller.
Hast Du eigentlich einen Tipp für eine gute deutsche Dokumentation für Docker?
Ich mag es manchmal lieber deutsch zu lesen, gerade wenn ich mehrere Kapitel durchlese.
Mit freundlichen Grüßen
Thomas
Hallo Thomas,
so richtig viele deutsche Tutorials und Dokus zu Docker gibt es leider nicht. Habe ich ehrlich gesagt auch noch nicht nach gesucht. 🙂
Die beste Doku meines Erachtens ist immer noch die von Docker selbst, aber die ist halt in Englisch…
MfG,
André
Hallo Andre,
vielen Dank für deine tollen Anleitungen!
Ich habe genau das gleiche Problem wie Dirk, mein Host (local) ist leider nicht grün, sondern rot 🙁
Diese Fehlermeldung erhalte ich, wenn ich auf den Host klicke:
Failure
Endpoint is unreachable and there is no snapshot available for offline browsing.
Deine Befehlszeile habe ich wie folgt um –privileged erweitert:
docker run -d -p 9000:9000 –privileged –name portainer –restart always -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/portainer_data:/data portainer/portainer
Leider hat das nicht geholfen.
Den Ordner „/volume1/docker/portainer_data“ habe ich einfach ohne weitere Ergänzungen oder Rechte in der File Station erstellt.
Mein Endpoint sieht so aus:
local Docker /var/run/docker.sock Unassigned Manage access
Unter „Manage access“ sind keine User oder Teams aufgeführt, die man zuweisen könnte.
Was mache ich falsch?
Viele Grüße
Mischa
Hallo Mischa,
das sieht für mich soweit eigentlich gut aus. Wüsste jetzt auch keinen echten Rat.
Du könntest mal versuchen das Data-Verzeichnis (-v /volume1/docker/portainer_data:/data portainer/portainer) weg zu lassen um Zugriffsprobleme/ Rechteprobleme aus zu schließen…
Oder Schau mal in den Logs zum Portainer-Container in der Weboberfläche der DiskStation, vielleicht gibt es da eine Fehlermeldung.
MfG,
André
Hallo Andre,
es läuft jetzt – keine Ahnung, woran genau es lag. Dein Tipp mit dem Weglassen des Verzeichnisses hatte leider nicht geholfen.
Da ich Docker noch nicht wirklich produktiv im Einsatz hatte, habe ich einfach mal alles deinstalliert und neu installiert.
Die Crux ist evtl. allerdings, dass Docker für meine DS416play offiziell nicht verfügbar ist! Obwohl diese bspw. baugleich mit der DS216+II ist, für die Docker offiziell angeboten wird.
Ich habe mir daher die SPK-Datei von Synology heruntergeladen und manuell installiert. Das hatte ich vorher allerdings auch.
Was bei der DS416play jedoch nur mit einem Root-Eingriff funktioniert, ist die Erstellung von VMMs (siehe hier: https://www.synology-forum.de/showthread.html?88072-DS416play-Open-vSwitch-aktivieren/page3). Vielleicht habe ich dabei irgendetwas zerschossen – keine Ahnung.
Wie auch immer, Portainer läuft, jetzt geht es weiter 🙂
Danke für deine Hilfe!
Viele Grüße
Mischa
Läuft einwandfrei, Danke für die umfangreiche Anleitung!
Gruß, Ralf
Hallo Ralf,
danke für das Feedback.
MfG,
André
Hi, danke auch für die ausführliche Anleitung.
Ich wollte jetzt auch noch ein automatisches Update meiner Dockerpakete mittels Watchtower einführen, leider hat mir das meinen ioBroker geschrottet (bzw. das komplette Dockerimage von der Syno gelöscht).
Wie haltest Du Deine Dockerpakete auf Stand ?
Hallo Carsten,
ich aktualisiere meine Container/ Images nur manuell. Würde das auch nicht automatisiert empfehlen. Zumindest nicht beim ioBroker.
Aber wie auch immer, eigentlich sollte nichts geschrottet sein. Wenn du dein ioBroker-Verzeichnis ausgelagert hast, dann einfach einen neuen Container mit den alten Parametern erstellen und ab geht die Post. Damit hatte ich bisher nie Probleme, und unter Portainer ist das ruck zuck gemacht.
Schau mal in der Container-Ansicht nach dem Button „Recreate“. Doing: Container stoppen, Recreate klicken, „Pull latest image“ aktivieren, Bestätigen. Anschließend nur noch Geduld haben, den Rest erledigt Portainer. Habe ich erst kürzlich im Rahmen der Arbeiten zu meinem neuen Docker Tutorial (coming soon) ausgiebig getestet. Funktioniert super.
MfG,
André
Hi, interessanterweise habe ich erst heute die ganzen Benachrichtigsmails zu den Kommentaren bekommen,
Wo sollte da https://d1jiktx90t87hr.cloudfront.net/354/wp-content/uploads/sites/2/2018/12/Containers1.png der Recreate-Button sein ?
Hab den Recreate gefunden, befindet sich in den Optionen nach Klick auf den Containernamen
Hallo Andre,
vorab möchte ich sagen, dass mir Dein Tutorial zu ioBroker zum EInen den A… gerettet hat, zum Anderen hat es mir wesentlich zum Verständnis des Dockers beigetragen. Ich verstehe die Mechanismen nun deutlich besser, auch wenn es da „nur“ um den ioBroker ging. Du hast hier ganz tolle Beschreibungen geliefert, die man sonst quasi nicht in den Weiten des Internets findet.
Nun zum Eigentlichen. Ich habe die Installation wieder nach Deiner tollen Anweisung durchgeführt. Leider hatte ich nach der Anmeldung an den portainer keine Verbindung zu local. Es kam immer „so-und-so ist unreachable“. Nach kleiner Recherche im Internet fand ich eine Option für die Befehlszeile, die dies erstmal behoben hat. Warum erstmal kommt gleich.
In der Befehlszeile „docker run“ ist nach dem -d ein –privileged zu ergänzen. Da ich mich nicht so auskenne, weiß ich nicht, was dies bedeutet bzw. bewirkt. Vielleicht kannst Du das ja mal aufnehmen 🙂
Warum erstmal?
portainer läuft bei mir nun anstandslos. Ich musste jedoch 2 Dinge anpassen, bei denen ich zum Teil immer noch unsicher bin.
1. Wenn ich unter /volume1/docker einen Ordner anlege, dann ist der Owner logischerweise immer der angemeldete Benutzer. Bei mir ein Administrator, aber eben nicht der Admin der Disk Station. Schon bei anderen Docker Apps musste ich über die Konsole den Ordner auf root umändern, also chown -R und chgrp -R auf root. Auch hier weiß ich nicht, was es bewirkt und ob es wirklich erfoderlich war.
2. Der Port 9000 war bei mir offensichtlich schon belegt, ich vermute von kopano4s. Also musste ich ihn anpassen. Leider habe ich dabei erst einen Fehler gemacht, und in der docker run Befehlszeile zunächst -p 8020:8020 gewählt. Dies führte dazu, dass ich die portainer Webseite gar nicht aufrufen konnte. Dann kam mir die Idee, dass der Container Port fest sein muss, also habe ich -p 8020:9000 genommen. Das hat dann geklappt.
Wenn Du magst kannst Du diese Anregungen/Gedanken/Ergänzuungen aufnehmen, oder auch gerne direkt mit mir in Kontakt treten (E-Mail trage ich ein).
Viele herzliche Grüße und schonmal vorab einen guten Rutsch 🙂
Und nochmals (ich kann das eigentlich nicht oft genug sagen) tausend Dank für Deine tollen Anleitungen.
Hallo Dirk,
vielen Dank für dein ausführliches Feedback. Schön dass meine Worte dir geholfen haben. 🙂
Warum dein Portainer erst nicht wollte, kann ich so aus der Ferne leider nicht beurteilen. „Privileged“ bedeutet aber, dass der Container mit „erweiterten Rechten“ (root) ausgeführt wird, was aber eigentlich beim Portainer nicht notwendig sein sollte…
Ähnliches vermute ich auch bei deinem Problem mit den Berechtigungen auf den Docker-Ordner. Das hat sich bei mir bisher nie als Problem dargestellt… Würde mich mal interessieren woran das liegen könnte…
Den letzten Punkt mit der Portweiterleitung hast du dir ja korrekt hergeleitet. Wenn ein Port bereits belegt ist, dann muss man ihn, zumindest Host-seitig, entsprechend ändern/ umleiten.
Viel Erfolg weiterhin!
MfG,
André
Hallo Dirk,
hast du den Fehler mit dem „unreachable Endpoint“ so lösen können?
Bei mir klappt das mit –privilieged leider nicht 🙁
Viele Grüße
Mischa