Raspberry Docker Setup
Hier meine Vorgehensweise, um einen Raspberry Pi Model 3B Plus vorzubereiten.
Diese Anleitung ist WIP (Work in Progress) und wird immer mal wieder geupdated und ergänzt.
Das Ganze ist mehr eine Dokumentation für mich selbst und idealerweise eine Anregung für den einen oder anderen. Wobei es im Internet keinerlei Mangel an ähnlichen Anleitungen gibt.
Ziel
- Ein schlankes Image mit sinnvollen Erweiterungen und mit Docker, um flexibel Applikationen als Container einbinden zu können.
- Schreibzugriffe auf die SD Karte sollen so weit wie möglich reduziert werden, da deren Lebensdauer darunter leidet.
- Daten sollen, soweit möglich und sinnvoll, auf einen angeschlossenen USB Stick abgelegt werden.
Raspbian
Basis für meine Grundinstallation ist Raspbian Buster Lite.
Folgende Einstellungen sollen vorgenommen werden:
- Schreibzugriffe auf SD Karte minimieren (Logfiles /var/log ausschalten)
- weitere Schreibzugriffe auf SD Karte minimieren
- SSH Zugriff erlauben
Native Software
Folgende Programme sollen nativ ergänzt werden:
- Midnight Commander
- USB Mount
- Git
- Docker
- Docker-Composer
- IOTstack (von gcgarner)
Von diesem Stand ist ein Image zu erstellen (als Basis für neue Rasberry Pi Installationen)
Docker
Dockerfiles installieren:
- InfluxDB
- Grafana
- Node Red
- Portainer
- MotionEye
Settings:
- individuellen Hostnamen vergeben (für einfachen Zugriff per hostname.local)
- SSL Zertifikate für Zugriff auf Dockerapplikationen installieren
- Umleitung der Datenspeicherung der Dockercontainer auf externen USB Stick (um Schreibzugriffe auf SD Karte zu minimieren).
Schritt für Schritt Anleitung
Raspbian Buster Lite herunterladen:
MicroSD Karte mit “SD Card Formatter” formatieren:
Das Raspbian Buster Lite Image mit “Win32DiskImager” auf eine SD Karte schreiben.
USB Stick formatieren (FAT32)
Raspbian aktualisieren bash
sudo apt-get update
sudo apt-get upgrade
USB Mount installieren
sudo apt-get install usbmount
USB Mount anpassen
Unter Stretch: in /lib/systemd/system/systemd-udevd.service MountFlags=slave ändern zu MountFlags=shared
Unter Buster: in /lib/systemd/system/systemd-udevd.service PrivateMounts=yes ändern zu PrivateMounts=no
Datenspeicherung auf SD Karte minimieren
- Temporäre Dateien von /var/tmp abschalten
sudo nano /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
[Service]
PrivateTmp=no
… todo Dockerinstallation
Mosquito Broker über Avahi bekannt machen
”’ sudo nano /etc/avahi/services/mqtt.service “’
”’
<?xml version=“1.0” standalone=‘no’?>
<!DOCTYPE service-group SYSTEM “avahi-service.dtd”>
”’ sudo service avahi-daemon reload “’
to be continued ….