NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@dtp sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Die 4.1.0 läuft soweit. Allerdings - wie gesagt - bei mir nun als Bridge, weil über MACVLAN einfach keine Verbindung mehr zu meiner MariaDB-10-Datenbank auf der Synology mit dem SQL-Adapter herzustellen war.
Lass doch für die Maria DB ebenfalls einen Container laufen:
docker run -d \ --name=iobroker-mariadb \ --hostname=iobroker-mariadb \ --env="MYSQL_ROOT_PASSWORD=PASSWORD" \ --env="MYSQL_DATABASE=iobroker" \ --volume="/volume2/docker-ssd/iobroker-mariadb:/var/lib/mysql:rw" \ --network=mac0 \ --ip=192.168.1.84 \ --dns=192.168.1.43 \ --restart=always \ mariadb:latest
-
Tja, nun habe ich das Problem, dass ich im bridged mode meines ioBrokers nicht mehr per Home App auf den yahka zugreifen kann. Die erstellten Bridges werden einfach nicht gefunden.
Also wohl doch wieder MACVLAN.
Kann mir jemand sagen, wie man da nun mit dem Portainer die MariaDB-10-Datenbank einrichtet? Wird der so erstellte Container dann auch über MACVLAN betrieben, oder besser im bridged mode? Und wie bekomme ich da die eigentliche Datenbank für den ioBroker konfiguriert?
Wäre für Hilfe echt dankbar, da ich den ioBroker mit dem sql- und dem yahka-Adapter im Moment irgendwie nicht sauber zum Laufen bekomme. Und das nervt.
-
@dtp Mein Beispiel oben läuft mit einer eigenen IP.
Die Parameter kannst du 1:1 übernehmen für den Start über Portainer. Ich mache das immer über die shell, geht schneller.
Für den Start des MariaDB Containers kannst du auch noch weitere ENV mitgeben, z.B. um direkt einen User + Password zu vergeben.
Siehe hier: https://hub.docker.com/_/mariadb --> MYSQL_USER, MYSQL_PASSWORD
Wenn beide Container dann eine fixe IP haben kannst du in den Containern selbst mal einen Ping auf den anderen absetzen, somit siehst du ob die beiden kommunizieren können.
-
Geht leider nicht so einfach. Dachte, ich müsste jetzt für MariaDB auch eine MACVLAN-Konfiguration erstellen, weil über eine Bridge wieder mal kein Zugriff auf die Datenbank möglich war.
Nun sagt er mir aber bei der Creation, dass es das Gateway schon gebe. Und wenn ich das Ding wieder löschen will, sagt er dass das nicht möglich ist, weil es in Benuztung ist.
Dieser "dämliche" Portainer beginnt mich mehr und mehr zu nerven. Das war alles mit der Version 2 so viel einfacher. Vermutlich bin ich einfach zu doof dafür.
-
@dtp Es ist völlig egal ob du die Container mit 'docker run', 'docker-compose', Portainer oder auch dem Synology Docker Frontend erstellst - im Ergebnis hast du einen laufenden Docker-Container. Portainer stellt das ganze nur am umfangreichsten grafisch dar.
Wieso möchtest du ein eigenes Netz für den Maria DB Container erstellen? Dein bereits erstelltes Netzwerk unter macvlan hat doch bereits ein Netz in dem noch ausreichend Platz ist und vor allem auch in dem sich Container befinden sollen die miteinander kommunizieren dürfen: 192.168.0.0/24 (wenn du dich an die Anleitung von andre gehalten hast).
Jetzt musst du dem Container nur noch eine IP aus diesem Bereich verpassen - natürlich darauf achten das die IP nicht bereits vergeben ist - denn durch das /24 ist theoretisch komplette Bereich von .0.1 bis 0.255 verwendbar.
Alternativ kannst du das Docker-Netzwerk auch schmäler definieren, z.B.
Du musst halt sicherstellen, das in diesem Bereich keine fixe IPs irgendwo anders vergeben sind, bzw. das auchkein DHCP-Server diesen Bereich verwendet. Deshalb schreib Andre auch mal solle sein Netzwerk kennen.
-
Danke für die Hilfe, aber auch damit habe ich keinen Zugriff bekommen. Es geht einfach nicht.
Ich habe jetzt alles gelöscht, aber selbst nach einer kompletten Neuinstallation fangen die Probleme direkt wieder an. Zunächst mal sieht alles gut aus.
Klicke ich aber ins Dashboard, werden mir ein Container, ein Image, zwei Volumes und fünf Netzwerke angezeigt, obwohl unter Home noch alles auf null stand.
Noch schlimmer, ich bekomme die beiden von mir angelegten Netzwerke "MariaDB_conf" und "MariaDB_conf2" nicht mehr gelöscht, weil sie angeblich in Benutzung sind. Ich habe nur keine Ahnung, wo.
Wie bekomme ich die wieder gelöscht? Ich hatte sie analog der Anleitung von André für den ioBroker mit MACVLAN angelegt. Aber das war ja ein Fehler.
Wie bekomme ich den Portainer wieder sauber?
-
@dtp Mach mal ein Screenshot vom Reiter 'Containers'
Das Dashboard sieht bei mir übrigens genau so aus, einfach ignorieren.
-
Zu spät.
Ich habe jetzt den kompletten Docker deinstalliert und wieder neu installiert. Natürlich habe ich vorher eine Sicherung meines iobroker-Verzeichnisses gemacht. Danach habe ich jetzt den Docker und den Portainer wieder neu installiert und nun sind die beiden Netzwerke verschwunden. Mach mich jetzt mal an den Rest der Installation.
Trotzdem danke für deine Hilfe.
-
@dtp Die beiden haben sich nicht löschen lassen, da es sehr wahrscheinlich noch Container-Leichen mit Verweis auf die Netzwerke gab
-
Jetzt habe ich noch mal eine weitere Frage. Meine DS läuft auf den beiden IP-Adressen 192.168.0.10 und 11. Die FRITZ!Box hat die 192.168.0.1.
Frei sind in meinem Netzwerk noch die Adressen 12 bis 19. Ist jetzt die folgende Konfiguration für MACVLAN korrekt?
Und kann ich dann nach deiner obigen Anleitung die 13 für den MariaDB-Container vergeben?
Ich bin da ein wenig irritiert, weil André in seinem Manual von virtuellen IP-Adressen gesprochen hat.
-
Also die Version 1.23.0 des Portainers ist irgendwie nicht so ganz produktiv..
Jetzt habe ich mich dummerweise verschrieben ("oth0" statt "eth0"). Wo bzw. wie kann man das umeditieren?
Kann doch nicht sein, dass man da nichts mehr an fehlerhaft vorgenommenen Netzwerkeinstellungen ändern kann. Und löschen geht natürlich auch wieder nicht, da angeblich "in use". Muss ich wohl wieder von vorne beginnen.
Oder gibt es da Editiermöglichkeiten in der docker.sock? Wenn ich diese lösche, dann hat das auch negativen Einfluss auf den gesamten Docker.
-
So,
jetzt habe ich es hinbekommen den ioB zweimal parallel laufen zu lassen und damit die neue Installation auf meine alte Ausstattung zu brigen.
Dafür erstmal danke an @andre und @duffbeer2000 !
Ein paar Punkte habe ich noch offen.Punkt 1 - wie oben bereits von @Negalein geschrieben muss ich nach dem dem Container-Neustart chmod 777 /dev/tty* ausführen um die USB Sticks durchzureichen.
Kann man das automatisieren?Punkt 2 - zwave bleibt gelb, obwohl es keine wirklichen Fehlermeldungen im Log gibt.
( -
@Telefisch sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Kann man das automatisieren?
so wie ich es verstanden habe, müsste dies nun mit 4.1.0 funktionieren.
-
@Negalein Also ich habe heute die last-Version geladen.
Da musste ich es eben noch einrichten.Ich probiere das morgen nochmal.
-
So,
ich habe jetzt mal die aktuelle Version des Containers ganz normal im Host-Modus über den Docker installiert. Und was soll ich sagen? Alles läuft. Hätte ich mir viel Ärger die letzten Tage ersparen können.
Der Portainer kam jetzt weg und die MariaDB läuft wieder direkt auf der DS in Verbindung mit phpMyAdmin über Port 3307. Auch der Zugriff auf den yahka-Adapter über die Home App klappte auf Anhieb.
Puh. Bin erleichtert.
-
@rostnagel
Was hast du denn bisher gemacht? Wie lautet deine Konfiguration?
Hast du die für den Adapter benötigten Linux-Pakete installiert?
Wie schaut es mit den Capabilities aus?
Falls dir das nichts sagt, lies bitte mal die readme vom radar2 Adapter.
Mit Adapter installieren und Device durch reichen ist es hier nicht getan....MfG,
André -
@dtp
Sorry dass ich mich jetzt erst zu Wort melde. Habe gerade mal deine letzten Beiträge gelesen und ein weiteres Mal festgestellt, dass ich dringend was in Richtung Docker Basics machen muss...Mir ist wichtig, dass jeder versteht dass der Portainer nicht Docker ist! Docker ist ein Dienst der auf dem Host (z.B. der DS) läuft. Normalerweise bedient man den Dienst per Kommandozeile. Es gibt aber auch Weboberflächen die praktisch im Hintergrund die grafischen Eingaben in Kommandozeilenbefehle umwandeln. Und die Ausgaben wiederum grafisch darstellen. Solche eine Oberfläche liefert Synology im DSM bereits mit. Das Problem: Diese Oberfläche bietet einfach zu wenig Funktionen. Eine umfangreichere Administrations-Oberfläche ist z.B. Portainer...
DIe Beziehung zwischen Docker und Portainer ist übrigens in etwa wie die Beziehung zwischen deiner mariadb und dem phpmyadmin...Weiterhin ist der Dockerdienst nunmal so konzipiert, dass man nicht einfach Konfigurationen anpassen kann. Hier gilt das Prinzip: Löschen und neu Einrichten. Mit docker-compose gibt es ein Hilfsmittel mit dem man durch ein einfaches "Konfigurationsfile" schnell und einfach einen oder mehrere Container inklusive Netzwerke, Volumes und was sonst so benötigt wird aufsetzen kann. An einem entsprechenden Tutorial inkl. Beispiel arbeite ich gerade...
Generell führen viele viele Wege zum Erfolg. Der Container lässt sich natürlich auch ohne portainer aufsetzen. Aber MACVLAN geht schonmal über die Oberfläche der DS nicht... Und auch mit dem Durchreichen von USB-Devices oder dem Setzen von Capabilities wird es da schwer. Wer das benötigt, der muss entweder eine andere Oberfläche oder die Kommandozeile verwenden...
MfG,
AndréPS: Freut mich übrigens, dass du nicht die Flinte ins Korn geworfen hast. Das Thema "ioBroker unter Docker" ist nicht ganz einfach. Um so besser dass du einen Weg gefunden hast wie es für dich am Besten funktioniert...
-
Hallo André,
danke für deine Rückmeldung. Also alles in die Tonne zu treten wäre definitiv nicht in Frage gekommen. Dafür läuft der ioBroker in deinem Docker-Image auf der DiskStation einfach zu gut.
Eigentlich hätte ich es auch gerne mit dem Portainer und MACVLAN weiterlaufen lassen. Ich hatte zwischenzeitlich auch gelesen, dass man für den Zugriff auf die lokal auf der DS installierte MariaDB wohl eine Bridge hätte einrichten müssen. Aber da nun alles im Host-Modus läuft und ich aktuell nicht so viele freie Ports benötige, lasse ich es wohl lieber so.
Gruß,
Thorsten
-
@dtp
Richtig dazu musst ein Netzwerk "Bridge" einrichten. Dies ist hier auch irgendwo erklärt.
Das Problem bei so einem Thread ist einfach, er wird zu groß und wenn man nicht ständig mitliest, kommt man nur durcheinander.
Auch mir passiert es, dass ich weiß, ich habe es hier irgendwo gelesen, aber wo....
Daher ist ein Wiki o.ä. immer sehr hilfreich, verstehe aber auch André, dies ist Zeitaufwändig und hinzu kommt, wie formuliere ich dies verständlich. -
So,
heute kam eine neue Version des js-controllers raus und ich musste feststellen, dass ich den ohne Portainer nicht installiert bekomme. Also fix den Portainer wieder installiert und dann darüber in die Konsole des ioBrokers gegangen, um das update durchzuführen.
Bis dann,
Thorsten