IoBroker installieren mit docker: Unterschied zwischen den Versionen
Fhesse (Diskussion | Beiträge) |
Fhesse (Diskussion | Beiträge) |
||
| Zeile 46: | Zeile 46: | ||
Und damit auch die Installation von Portainer einfach ist, laden wir dafür einfach ein Docker-Image herunter und führen es aus. | Und damit auch die Installation von Portainer einfach ist, laden wir dafür einfach ein Docker-Image herunter und führen es aus. | ||
| + | [[Datei:04.1 portainer install+start.png|mini]] | ||
<code>docker pull portainer/portainer</code> | <code>docker pull portainer/portainer</code> | ||
| Zeile 54: | Zeile 55: | ||
<code>docker volume create portainer_data</code> | <code>docker volume create portainer_data</code> | ||
| + | [[Datei:04.1 portainer environment.png|mini]] | ||
Und dann starten wir den container schon: | Und dann starten wir den container schon: | ||
| Zeile 60: | Zeile 62: | ||
Portainer läuft jetzt im Hintergrund. Um das zu prüfen, können wir folgenden Befehl verwenden: | Portainer läuft jetzt im Hintergrund. Um das zu prüfen, können wir folgenden Befehl verwenden: | ||
| + | [[Datei:04.1 portainer 1 webinterface.png|mini]] | ||
<code>docker ps</code> | <code>docker ps</code> | ||
Im Webbrowser kann man nun auf die Weboberfläche von portainer zugreifen. Einfach im Browser eingeben: | Im Webbrowser kann man nun auf die Weboberfläche von portainer zugreifen. Einfach im Browser eingeben: | ||
| − | <code>http://IP-Adresse des Raspis:9000/</code> | + | <code>[http://IP-Adresse%20des%20Raspis:9000/ http://IP-Adresse des Raspis:9000/]</code> |
Beim ersten Start verlangt Portainer die Definition des Admin-Kennworts. Ich wähle das gleiche, was auch der Raspberry verwendet: | Beim ersten Start verlangt Portainer die Definition des Admin-Kennworts. Ich wähle das gleiche, was auch der Raspberry verwendet: | ||
| Zeile 77: | Zeile 80: | ||
Dazu klicken wir auf den Namen des Containers. | Dazu klicken wir auf den Namen des Containers. | ||
| − | Falls der portainer einen kryptischen Namen hat, kann das auf der nächsten Seite geändert werden. | + | Falls der portainer einen kryptischen Namen hat, kann das auf der nächsten Seite geändert werden. Gleich oben in der Kategorie "Container Status" hinter "Name" auf den kleinen Stift klicken, um den Namen beliebig zu ändern. |
Anschließend ein Stück runter scrollen zu den "Container details" | Anschließend ein Stück runter scrollen zu den "Container details" | ||
| Zeile 83: | Zeile 86: | ||
Und bei "Restart policies" den Wert "Unless stopped" auswählen und auf "Update" klicken. | Und bei "Restart policies" den Wert "Unless stopped" auswählen und auf "Update" klicken. | ||
| + | <gallery> | ||
| + | 04.1 portainer restart 1.png|Auf den Namen des Containers klicken | ||
| + | 04.1 portainer restart 2.png|Auf den kleinen Stift hinter "Name" klicken, um den Namen zu ändern | ||
| + | 04.1 portainer restart 3.png|Etwas runter scrollen und "Restart policies" auf "Unless stopped" setzen | ||
| + | </gallery> | ||
Jetzt sollte portainer auch nach einem Neustart des Raspberrys noch erreichbar sein. | Jetzt sollte portainer auch nach einem Neustart des Raspberrys noch erreichbar sein. | ||
Das testen wir: | Das testen wir: | ||
Version vom 20. Oktober 2019, 18:38 Uhr
Jetzt kommen wir aber endlich zum eigentlichen Ziel dieser Anleitung. Wir wollen iobroker installieren.
Und damit das nicht nur iobroker in seiner einfachen Form ist, soll es in einer virtuellen Umgebung auf dem Raspberry Pi laufen. So ist es später einfacher möglich, Updates zu installieren und Backups zu erstellen.
Die Virtualisierung heißt "docker" und ist der "letzte heiße Scheiß" in der Software Branche. Alles wird heutzutage in docker gepackt.
Zuerst installieren wir also docker. Das funktioniert etwas anders als oben, dafür geht es aber auch vollautomatisch.
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
curl ist ein Befehl um Daten von einem Server zu empfangen, oder zu senden.
Dieser ruft den Inhalt der Seite get.docker.com ab und speichert ihn in einer Datei namens get-docker.sh.
Mit && werden in einer Zeile mehrere Befehle nacheinander ausgeführt.
Man könnte den Befehl nach && auch später in einer neuen Zeile ausführen.
In diesem Fall ist das aber nicht notwendig.
Im Script ist empfohlen, den Nutzer "pi" zur docker-Nutzergruppe hinzuzufügen. Nur so ist es später möglich, docker container mit Admin-Rechten auszuführen.
sudo usermod -aG docker pi
Jetzt können wir die Docker-Installation testen:
sudo docker run hello-world
Im Hintergrund passiert dabei folgendes:
- der Docker Client kommuniziert mit dem Docker Daemon
- lädt das Docker Image hello-world vom Docker-Hub
- der Docker Daemon erstellt ein neuen Container vom Image, welcher den Code für die Ausgabe ausführt
- Docker Daemon leitet die Ausgabe zum Docker Client weiter und dieser sendet die Ausgabe wiederum an deinen Terminal/CLI
Portainer installieren
Bevor es weitergeht machen wir einen Neustart des Raspberrys und verbinden uns neu per ssh.
sudo reboot
Man könnte jetzt wunderbar mit Hilfe der Kommandozeile Docker Images runterladen, installieren und ausführen. Aber das ist wenig komfortable. Einfach geht das mit "Portainer".
Und damit auch die Installation von Portainer einfach ist, laden wir dafür einfach ein Docker-Image herunter und führen es aus.
docker pull portainer/portainer
Docker hat die Eigenschaft, dass es keine Daten speichert. Alle Daten in einem sogenannten Docker-Container laufen nur so lange wie der Container. Sobald der Container beendet wird, sind alle Daten weg. Damit man Dienste wie iobroker trotzdem verwenden kann, muss man das Speichern der Daten auslagern.
Damit auch die Daten von Portainer gespeichert werden, legen wir zuerst ein Daten-Verzeichnis für portainer an:
docker volume create portainer_data
Und dann starten wir den container schon:
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Portainer läuft jetzt im Hintergrund. Um das zu prüfen, können wir folgenden Befehl verwenden:
docker ps
Im Webbrowser kann man nun auf die Weboberfläche von portainer zugreifen. Einfach im Browser eingeben:
http://IP-Adresse des Raspis:9000/
Beim ersten Start verlangt Portainer die Definition des Admin-Kennworts. Ich wähle das gleiche, was auch der Raspberry verwendet:
Passwort: christoph
Dann will portainer wissen, ob man es local verwenden will oder eine größere portainer-Farm in der Cloud hat. Wir wählen "local".
Und schon sind wir das erste mal auf der portainer Web-Oberfläche. Wenn du auf "local" > "Container" klickst, siehst du alle momentan laufenden Container auf dem Raspberry. Das ist momentan nur der portainer-Container.
Damit der portainer-Container immer mit dem Start des Raspberrys startet, werden wir ihn jetzt noch umkonfigurieren. Dazu klicken wir auf den Namen des Containers.
Falls der portainer einen kryptischen Namen hat, kann das auf der nächsten Seite geändert werden. Gleich oben in der Kategorie "Container Status" hinter "Name" auf den kleinen Stift klicken, um den Namen beliebig zu ändern.
Anschließend ein Stück runter scrollen zu den "Container details"
Und bei "Restart policies" den Wert "Unless stopped" auswählen und auf "Update" klicken.
Jetzt sollte portainer auch nach einem Neustart des Raspberrys noch erreichbar sein. Das testen wir:
sudo reboot
Sobald der Raspberry wieder gestartet hat, kann man prüfen, ob die portainer Seite im Browser lädt und nach dem Login fragt.