Grundverständnis

Du befindest dich hier:

Weil es immer wieder Unklarheiten in Bezug auf die Arbeitsweise und Rollenverteilung bei Docker gibt, hier noch ein paar generelle Worte zu den Zusammenhängen zwischen Host (DiskStation), Docker, Docker Image und ioBroker. Also einmal die absoluten Basics, möglichst einfach beschrieben:

Fangen wir einfach mal ganz „außen“ an. Hier steht die Hardware bzw. Plattform. In meinem Fall die Synology Disk Station (DS). Auf der Hardware läuft in der Regel ein Betriebssystem (OS). Für die DiskStation ist das OS der DiskStation Manager (DSM). Der DSM ist linux-basiert und bietet eine Weboberfläche zur Administration. Über die Weboberfläche kann man einfach zusätzliche Software Pakete (Programme, neudeutsch Apps) auf der DiskStation installieren. Die Installation erfolgt über das Paketzentrum der DS.

Das Docker Paket ist eine solche Software. Sie ermöglicht es z.B. weitere Programme und Tools auf der DS zur Verfügung zu stellen, für die es aber kein spezielles Synology Software Paket gibt. Außerdem ist es mit Docker möglich Programme mehr oder weniger abgeschottet und unabhängig vom restlichen System aus zu führen.

Die Programme und Tools, welche man unter Docker ausführen kann, können als Images herunter geladen werden. Die Images enthalten dabei in der Regel alle für das jeweilige Programm nötigen Voraussetzungen (Programmbibliotheken, Linux-Pakete, usw.) sowie natürlich das eigentliche Programm. Um ein herunter geladenes Image nutzen zu können wird ein Container erstellt. Dieser enthält alle Parameter bzw. Konfigurationen (Ports, Volumes, usw.) die das Programm zur Ausführung benötigt.

Bezogen auf mein ioBroker-Docker-Image und ioBroker als Applikation bedeutet dies:

Das Docker-Image beinhaltet alle Pakete und Voraussetzungen für das Ausführen von ioBroker, den ioBroker-Adaptern sowie dem js-controller. Die ioBroker-Installation selbst (inkl. Adapter und js-controller) befindet sich nach der Erstellung eines Containers unter dem Pfad „/opt/iobroker“. Wenn der Pfad über ein Volume oder einen Mountpoint vom Host in den Container eingebunden wurde, ist der Container nur noch die Umgebung in der ioBroker gestartet wird und kann jederzeit einfach aktualisiert bzw. neu erstellt werden.

Die ioBroker-Installation selbst, sowie alle Adapter und der js-controller, befinden sich unter dem oben genannten Pfad. Diese Dateien werden beim Update des Containers nicht aktualisiert. Dies bedeutet, dass Updates zu Adaptern oder dem js-controller immer über die Weboberfläche des ioBroker-Admin oder die Kommandozeile des Containers eingespielt werden müssen.

Ich hoffe meine Ausführungen sind soweit nachvollziehbar und einfach verständlich. Falls ihr dazu Anmerkungen haben solltet, haut es bitte in die Kommentare. Danke!

Zuletzt aktualisiert: März 29, 2019

About the author: André

André
Familienvater und bekennender Technik-Nerd. Beruflich unterwegs als Fachinformatiker für Systemintegration bei einem deutschen IT-Dienstleister. In der Freizeit begeisterter "Home-Automatisierer" bzw. "Smarthome-Bastler" und (zumindest bei schönem Wetter) gerne mit der Familie in verschiedenen Outdooraktivitäten unterwegs.

Leave a Reply

Your email address will not be published.