Docker so konfigurieren, dass SD-Karte als Data Root verwendet wird (z. B. WP400 mit PLCVisu)
Dieser Leitfaden erklärt, wie man den Speicher von Docker auf eine SD-Karte umleitet, ideal für Geräte mit begrenztem internem Speicher (wie WAGO WP400). Sie umfasst Vorbereitung, kontinuierliche Montage und strukturierte Fehlerbehebung.
Softwareanforderungen
-
Docker
WAGO Docker Installationsanleitung (Suche nach WP400 Docker IPK) -
PLCVisu Software (.ipk)
WAGO PLCVisu Download-Seite -
Root-Zugriff
Über SSH (ssh root@<wp400-ip>) oder serielle Terminale
Hardwareanforderungen
- SD-Karte oder SSD mit USB-Adapter
- Mindestklasse 10 oder UHS-I
- Mindestens 8 GB (16+ GB empfohlen)
- Formatiert als
ext4odervfat(Linux-kompatibel)
Voraussetzungen
Mount SD-Karte und Docker-Speicher vorbereiten
1. Identifizieren Sie das SD-Karten-Gerät
Lauf:
lsblk
oder:
dmesg | grep sd
Suchen Sie nach einem Gerät wie /dev/mmcblk0p1 oder /dev/sda1
### 2. Format the SD Card (if needed – this erases all data)
mkfs.ext4 /dev/sda1
Passen Sie den Gerätenamen an Ihr System an
Du kannstmkfs.vfatverwenden, fallsext4nicht unterstützt wird
### 3. Create Mount Point and Mount the SD Card
mkdir -p /mnt/sdcard
mount /dev/sda1 /mnt/sdcard
Überprüfen Sie mit: https://doc.plcvisu.cloud/de/downloads.html
df -h
4. Docker Data Directory bereiten
mkdir -p /mnt/sdcard/docker
chmod 711 /mnt/sdcard/docker
5. Stoppe Docker, bevor du die Konfiguration änderst
/etc/init.d/docker stop
6. Backup bestehender Docker-Daten (optional)
mv /var/lib/docker /var/lib/docker.backup
7. Docker so konfigurieren, dass er die SD-Karte als Datenwurzel verwendet
Bearbeiten oder erstellen:
vi /etc/docker/daemon.json
Einfügen:
{
"data-root": "/mnt/sdcard/docker"
}
Speichern und schließen.
8. Docker von vorne starten
/etc/init.d/docker start
9. Docker-Speicherpfad überprüfen
docker info | grep "Docker Root Dir"
Erwartetes Ergebnis:
Docker Root Dir: /mnt/sdcard/docker
Optional: Mount nach Neustart persistent machen
Edit /etc/fstab:
/dev/sda1 /mnt/sdcard ext4 defaults 0 2
⚠️ Stellen Sie sicher, dass die SD-Karte beim Booten immer verfügbar ist
Verwenden Sie zum Testenmount -a
Nach-Neustart-Check
Nach dem Neustart:
df -h | grep /mnt/sdcard
docker info | grep "Docker Root Dir"
Wenn du auf /var/lib/docker zurückfällst, → fstab und Docker-Boot-Timing überprüfst
Fehlerbehebungsanleitung
| Symptom | Ursache | Lösung |
|---|---|---|
Docker Root Dir ist immer noch /var/lib/docker |
Die SD-Karte wurde nicht früh genug montiert | Verzögere den Start von Docker oder benutze mount --bind |
mount: wrong fs type |
Falsches Dateisystemformat | Umformatieren mit mkfs.ext4 |
Kein Platz mehr auf dem Gerät |
SD-Karte zu klein / falsche Halterung | Überprüfe mit df -h, vergrößere SD oder befestige rechts |
Erlaubnis verweigert auf /mnt/sdcard/docker |
Falsche Berechtigungen | Run chmod 711 /mnt/sdcard/docker |
| Docker startet nicht | Konfigurationsfehler oder fehlender Ordner | Schau dir /etc/docker/daemon.json und die Logs an |
Abschließende Anmerkungen
- Stoppe Docker immer, bevor du die Konfiguration änderst
- Entfernen Sie die SD-Karte nicht, während Docker läuft
- Für kritische Anwendungen: verwenden Sie Industrie-SD oder externe SSD
- Sie können sauber zurücksetzen, indem Sie
/var/lib/docker.backupwiederherstellen unddaemon.jsonbearbeiten
⚠️ Stelle sicher, dass die SD-Karte vor dem Start von Docker beim Booten montiert ist.
Wenn die Montage zu spät kommt, wird Docker neu initialisieren in/var/lib/docker.
Lade- und Ausführen des Node-RED-Docker-Bildes auf WP400
Mit dieser Methode können Sie Node-RED auf einem WP400 ohne Internetzugang bereitstellen, indem Sie eine vorinstallierte .tar Docker-Bilddatei verwenden.
1. 1. Laden Sie die Docker-Image .tar -Datei herunter (über Link)
Anstatt von Docker Hub zu laden, laden Sie die vorbereitete Image-Datei herunter:
Speichere die Datei lokal auf deinem Entwicklungs-PC.
2. Übertragen Sie die Docker-Image-Datei auf die WP400 SD-Karte (eingebundenes Verzeichnis).
Anstatt das Docker-Image in den temporären Speicher (/tmp) zu verschieben, können Sie es direkt auf die im WP400 eingesteckte SD-Karte speichern. Dies ist besonders nützlich, wenn das Image groß ist und Sie den internen Speicher nicht erschöpfen möchten.
Windows
Option A – WinSCP (GUI):
- Installieren Sie WinSCP (https://winscp.net).
- Stellen Sie eine Verbindung zum WP400 über SCP her (
root@<wp400-ip>). - Navigieren Sie zum Verzeichnis der eingebundenen SD-Karte, üblicherweise
/mnt/sdcard. - Ziehen Sie die Datei
node-red-arm327l.tarper Drag & Drop in das Verzeichnis/mnt/sdcard.
Option B – Befehlszeile mit PuTTY (pscp):
pscp C:pathtonode-red-arm327l.tar root@<wp400-ip>:/mnt/sdcard
macOS
Nutzen Sie das Terminal:
scp ~/Downloads/node-red-arm327l.tar root@<wp400-ip>:/mnt/sdcard
Linux
Verwenden Sie ein beliebiges Terminal:
scp /path/to/node-red-arm327l.tar root@<wp400-ip>:/mnt/sdcard
USB-Stick (Alternative für alle Betriebssysteme)
Falls die Übertragung über das Netzwerk nicht möglich ist:
- Kopieren Sie die Datei auf einen USB-Stick.
- Schließen Sie den USB-Stick an das WP400 an.
- Verschieben Sie die Datei auf dem WP400 auf die SD-Karte.
mount /dev/sda1 /mnt/usb cp /mnt/usb/node-red-arm327l.tar /mnt/sdcard umount /mnt/usb
Sobald die Datei unter /mnt/sdcard gespeichert ist, fahren Sie mit Schritt 3 fort: Docker-Image von der SD-Karte laden
Sobald die Datei unter /tmp verfügbar ist, fahren Sie mit Schritt 3 fort: Docker-Image auf WP400 laden
3. Docker-Image auf WP400 laden
Stellen Sie eine SSH-Verbindung zu Ihrem WP400 her und führen Sie folgenden Befehl aus:
docker load -i /tmp/node-red-arm327l.tar
Dadurch wird das Image in Ihre lokale Docker-Registry geladen.
4. Den Node-RED-Container ausführen
docker run -it -d -p 1880:1880 -v node_red_data:/data --name wago-nodered --restart unless-stopped node-red-arm327l:latest
✔ Stellen Sie sicher, dass der Image-Name (
node-red-arm327l:latest) mit dem vondocker imagesangezeigten Namen übereinstimmt.
???? Um die SD-Karte für persistente Daten zu verwenden, ersetzen Sienode_red_datadurch einen vollständigen Pfad wie/mnt/sdcard/nodered.
Zugriff auf Node-RED
Im Browser öffnen:
http://<wp400-ip>:1880
Sie verfügen nun über eine voll funktionsfähige Node-RED-Instanz, die auf WP400 läuft, ohne dass ein direkter Internetzugang erforderlich ist.