Raspberry Pi mit Raspbian und Docker

Aus Laub-Home.de Wiki
Zur Navigation springen Zur Suche springen
IMG 4682.JPG

Der Raspberry Pi ist perfekt geeignet um die ersten Schritte mit Docker und Docker Compose zu gehen. Das Setup hier hat keine 30 Minuten in Anspruch genommen. Man kann also Ruckzuck die ersten Docker Container starten und nutzen. Eine Sache gibt es jedoch zu beachten. Aufgrund der ARM Architektur sind nicht alle Docker Images lauffähig. Nur die ARM kompatiblen Images funktionieren auf dem Raspberry Pi. Heißt auch, dass ihr ggf. die Images neu für den Raspberry Pi bauen (build) müsst.

Installation Raspbian auf SD-Karte

Als erstes nehmen wir den Raspberry Pi (ich habe hier die Dritte Generation), bauen alles zusammen und nehmen eine Frische Micro SD Karte zur Hand. Nun laden wir auf der folgenden Seite das neuste Raspbian Image Lite herunter (hier: Raspbian Buster Lite):

Als nächste bringen wir das Image auf die SD Karte, dafür verwenden wir das Tool balenaEtcher dieses und die offizielle Anleitung zum Installieren von Raspbian findet ihr hier. Der Download von balenaEtcher ist hier zu finden:

Das Tool wird einfach gestartet, die SD Karte mit einem Card Reader verbunden und einfach das Image ausgewählt, dann auf Flash klicken und schon geht es los:

Vorher heruntergelassenes Raspbian Image auswählen
Flash anklicken, und los geht es

Wenn alles richtig gelaufen ist, kommt es zur Meldung "Flash Complete"

SSH beim Booten Aktivieren

Hat man wie ich, nicht vor an den PI Tastatur, Maus und Monitor zu hängen, muss man den SSH Daemon beim Booten aktivieren. Hierfür gibt es zum Glück eine ganz einfache Lösung. Es muss lediglich auf der SD-Card im /boot eine leere Datei Namens ssh angelegt werden. Bei mir auf dem MAC ging das im Terminal wie folgt:

cd /Volumes/boot/
touch ssh

Dann die SD Card mittels CMD+E Ejecten/auswerfen und in den PI stecken. Ebenfalls sollte der Pi nun via LAN Kabel an den Router verbunden werden. Dann einfach booten. Da ich einen DHCP/DNS Server habe, konnte ich mich einfach mit dem Namen des PI via SSH verbinden. Sollte das nicht möglich sein, am besten schauen welche IP dem Pi zugewiesen wurde (sollte man ggf. im Router Webinterface herausbekommen):

ssh pi@raspberrypi

Das Standard Passwort ist übrigens "raspberry"

Root User freischalten

Als erstes sollten wir das Passwort ändern und dann noch den Root User freischalten:

passwd

dann noch das Root Passwort festlegen:

sudo passwd

Zuguter Letzt müssen wir dem Root User noch erlauben via SSH auf das System zugreifen zu dürfen: Dafür der Datei /etc/ssh/sshd_config, welche wir am besten so aufrufen:

sudo nano /etc/ssh/sshd_config

hier die folgende Zeile einfügen:

PermitRootLogin yes

dann den Dienst Neustarten:

sudo systemctl restart ssh

nun am besten mit einer neuen SSH Verbindung den Root Account Zugang testen:

ssh root@raspberrypi

Updates installieren

Nachdem wir uns nun als Root eingeloggt haben, können wir erstmal alle Updates installieren:

apt update && apt dist-upgrade
rpi-update

Nach dem alle Updates installiert sind, kann man Raspbian auf 64Bit umstellen. Dies ist allerdings optional und ist wohl auch noch ein wenig buggy. Dennoch hier eine kleine Anleitung wie dies geht:

Konfiguration von Raspbian

die wichtigsten Dinge kann man bequem mit dem raspi-config Tool erledigen:

raspi-config

Ich habe hier unter den "Network-Options" den Hostname des Systems und unter den "Localisation Options", die Timezone und das Wi-Fi Country geändert . Das System habe ich in Englischer Sprache gelassen.

Installation Docker

Nun kommen wir zur Docker Installation auf dem Raspberry Pi unter Raspbian. Dies passiert mit folgendem Einzeiler ganz einfach und schnell:

curl -sSL https://get.docker.com | sh

das war es schon. getestet werden kann das Ganze dann mit dem hello World Container:

docker run hello-world

bringt dann in etwas den folgenden Output:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
4ee5c797bcd7: Pull complete 
Digest: sha256:9572f7cdcee8591948c2963463447a53466950b3fc15a247fcad1917ca215a2f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (arm32v7)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Installation Docker-Compose

zuerst installieren wir die Abhängigkeiten für docker-compose

apt install libffi-dev libssl-dev python python-pip -y
apt remove python-configparser -y

nun holen wir uns das aktuelle Docker Compose Skript:

pip install docker-compose

Der Test erfolgt dann einfach so:

docker-compose --version

das Ergebnis sieht in etwa so aus

docker-compose version 1.25.4, build unknown

Nachdem nun alles installiert ist, kann man Compose Projekte erstellen und ganz einfach Container hoch und runterfahren.

Quellen