Dieser Blog beschreibt, wie einfach es ist, Docker in Kombination mit einem Raspberry Pi zu verwenden. Dank Docker ist die Bereitstellung von Software auf dem Raspberry Pi ein Kinderspiel. Was ist ein Raspberry Pi? Der Raspberry Pi ist ein kreditkartengroßer Computer, der an Ihren Fernseher und eine Tastatur angeschlossen werden kann. Er ist ein leistungsfähiger kleiner Computer, der für Elektronikprojekte und für viele Dinge verwendet werden kann, die auch Ihr Desktop-PC erledigt, z.B. Tabellenkalkulationen, Textverarbeitung und Spiele. Er spielt auch hochauflösende Videos ab. Ein Raspberry Pi läuft unter Linux, hat einen ARM-Prozessor mit 700 MHZ und einen internen Speicher von 512 MB. Und nicht zuletzt kostet er nur etwa 35 Euro.
Aufgrund des Preises, der Größe und der Leistung ist der raspberry pi ein Schritt zum Prinzip des 'Internet der Dinge'. Mit einem Raspberry Pi ist es möglich, alles zu steuern und mit allem zu verbinden. Mein Heimprojekt ist zum Beispiel ein Raspberry Pi, der einen Roboter steuert.
[caption id="attachment_13297" align="aligncenter" width="365"]
Raspberry Pi in Aktion[/caption]
Was ist Docker? Docker ist eine offene Plattform für Entwickler und Systemadministratoren zum Erstellen, Ausliefern und Ausführen von verteilten Anwendungen. Mit Docker können Entwickler jede Anwendung in jeder Sprache und mit jeder Toolchain erstellen. "Dockerisierte" Anwendungen sind vollständig portabel und können überall ausgeführt werden. Eine gedockte Anwendung enthält die Anwendung, ihre Umgebung, Abhängigkeiten und sogar das Betriebssystem. Warum Docker und Raspberry Pi kombinieren? Es ist schön, mit einem Raspberry Pi zu arbeiten, denn er ist eine großartige Plattform, um Geräte zu verbinden. Die Bereitstellung von Anwendungen ist jedoch ziemlich mühsam. Mit gedockten Anwendungen können wir unsere Anwendung auf unserem eigenen Rechner zu Hause entwickeln und testen, und wenn sie funktioniert, können wir sie auf dem Raspberry einsetzen. Wir können dies tun, ohne uns Sorgen über eine Beschädigung des zugrunde liegenden Betriebssystems und der Tools machen zu müssen. Und zu guter Letzt können Sie Ihre Versuche einfach rückgängig machen. Was besser ist, als ich erwartet hatte Zunächst einmal war es relativ einfach, Docker auf dem Raspberry Pi zu installieren. Wenn Sie das Arch Linux-Betriebssystem verwenden, ist Docker bereits Teil des Paketmanagers! Ich hatte erwartet, dass ich die Docker-Anwendung aufwendig übersetzen müsste, da der Raspberry Pi eine ARM-Architektur (anstelle der standardmäßigen x86-Architektur) verwendet, aber das hat bereits jemand für mich getan! Zweitens: Es gibt eine Reihe von gebrauchsfertigen Docker-Images speziell für den Raspberry Pi. Um gedockte Anwendungen auf dem Raspberry Pi auszuführen, sind Sie auf die Basis-Images angewiesen. Diese Basis-Images müssen auch die ARM-Architektur unterstützen. Für jede Situation gibt es ein Image, egal ob Sie node.js, python, ruby oder nur java ausführen möchten. Das Schlimmste, was mir Sorgen bereitete, war die Leistung der Ausführung virtualisierter Software auf einem Raspberry pi. Aber es hat alles gut geklappt und ich habe keine Leistungseinbußen festgestellt. Docker benötigt viel weniger Ressourcen als der Betrieb von virtuellen Maschinen. Ein Docker-Prozess läuft direkt auf dem Host und bietet native CPU-Leistung. Die Verwendung von Docker erfordert einen geringen Overhead für Speicher und Netzwerk. Was ich an Docker auf einem Raspberry Pi nicht mag Der Slogan von Docker, jede Anwendung überall zu erstellen, zu versenden und auszuführen, ist nicht ganz richtig. Sie können Ihre Dockerdatei nicht auf Ihrem lokalen Rechner entwickeln und die gleiche Anwendung direkt auf Ihrem Raspberry Pi bereitstellen. Das liegt daran, dass jede Dockerdatei ein Kern-Image enthält. Um Ihre Anwendung auf Ihrem lokalen Rechner auszuführen, benötigen Sie ein x86-basiertes Docker-Image. Für Ihren Raspberry pi benötigen Sie ein ARM-basiertes Image. Das ist schade, denn das bedeutet, dass Sie Ihr Docker-Image für Ihren Raspberry Pi nur auf dem Raspberry Pi erstellen können, was langsam ist. Ich habe mehrere Dinge ausprobiert.
- Ich habe den Emulator QEMU verwendet, um den rasberry pi auf einem schnellen Macbook zu emulieren. Aber wegen der Ineffizienz der Emulation ist es genauso langsam wie das Erstellen Ihrer Dockerdatei auf einem raspberry pi.
- Ich habe versucht, quer zu kompilieren. Das war nicht möglich, weil die Befehle in Ihrem Dockerfile auf einem laufenden Image wiedergegeben werden und das laufende raspberry-pi Image nur auf ... einem raspberry pi ausgeführt werden kann.
Wie man eine einfache node.js-Anwendung mit Docker auf einem Raspberry Pi ausführt Schritt 1: Installation von Arch Linux Der erste Schritt ist die Installation von arch linux auf einer SD-Karte für den raspberry pi. Das bevorzugte Betriebssystem für den raspberry pi ist ein auf Debian basierendes Betriebssystem: Raspbian, das gut für die Arbeit mit einem Raspberry Pi konfiguriert ist. Aber in diesem Fall ist ArchLinux besser, denn wir verwenden das Betriebssystem nur, um Docker darauf auszuführen. Arch Linux ist ein viel kleineres und einfacheres Betriebssystem. Am besten befolgen Sie die Schritte unter archlinuxarm.org/platforms/armv6/raspberry-pi. In meinem Fall verwende ich die Version 3.12.20-4-ARCH. Zusätzlich zum Tutorial:
- Nachdem Sie das Image heruntergeladen haben, installieren Sie es auf einer sd-Karte, indem Sie den folgenden Befehl ausführen: sudo[code]dd if=Pfad_Ihres_Images.img of=/dev/diskn bs=1m[/code]
- Wenn beim Booten kein HDMI-Ausgang vorhanden ist, entfernen Sie die config.txt auf der SD-Karte. Es wird wie von Zauberhand funktionieren!
- Melden Sie sich mit root / root an.
- Arch Linux verwendet standardmäßig 2 GB. Wenn Sie eine SD-Karte mit einer höheren Kapazität haben, können Sie die Größe mit den folgenden Schritten ändern https://gleenders.blogspot.nl/2014/03/raspberry-pi-resizing-sd-card-root.html
Schritt 2: Installieren eines WLAN-Dongles In meinem Fall wollte ich einen WLAN-Dongle an den Raspberry Pi anschließen, indem ich diese einfachen Schritte befolgte
- Installieren Sie die Wireless-Tools: [code] pacman[/code]-Syu pacman-S wireless_tool
- Richten Sie die Konfiguration ein, indem Sie Folgendes ausführen: wifi-menu
- Starten Sie das WLAN automatisch mit: [code] netctl list netctl enable wlan0-[name] [/code]
Da der Raspberry Pi nun mit dem Netzwerk verbunden ist, können Sie per SSH auf ihn zugreifen. Schritt 3: Installation von docker Die eigentliche Installation von docker ist relativ einfach. Es gibt eine Docker-Version, die mit dem ARM-Prozessor (der im Raspberry Pi verwendet wird) kompatibel ist. Dieses Docker ist Teil des Paketmanagers von Arch Linux und die verwendete Version ist 1.0.0. Zum Zeitpunkt des Schreibens dieses Blogs ist die Version 1.1.2 von docker freigegeben. Die fehlenden Funktionen sind
- Verbesserte Sicherheit für den LXC-Treiber.
- .dockerignore Unterstützung.
- Pausieren Sie Container während eines Docker-Commits.
- Fügen Sie --tail zu den Docker-Protokollen hinzu.
Sie installieren docker und starten es als Dienst beim Systemstart mit den Befehlen: [code] pacman-S docker systemctl enable docker [/code]
[caption id="attachment_13329" align="aligncenter" width="251"]
Installieren von Docker mit pacman[/caption]
Schritt 4: Ausführen einer einzelnen nodejs-Anwendung Nachdem wir Docker auf dem Raspberry Pi installiert haben, wollen wir eine einfache nodejs-Anwendung ausführen. Die Anwendung, die wir einsetzen werden, ist inspiriert von der nodejs Web im Tutorial auf der Docker-Website: https://github.com/enokd/docker-node-hello/. Diese nodejs-Anwendung gibt ein "Hallo Welt" auf der Konsole des Webbrowsers aus. Wir müssen das Dockerfile ändern in:
[code]
# DOCKER-VERSION 1.0.0
FROM resin/rpi-raspbian
# install required packages
RUN apt-get update
RUN apt-get install -y wget dialog
# install nodejs
RUN wget https://node-arm.herokuapp.com/node_latest_armhf.deb
RUN dpkg -i node_latest_armhf.deb
COPY . /src
RUN cd /src; npm install
# run application
EXPOSE 8080
CMD ["node", "/src/index.js"][/code]
Und es funktioniert!
[caption id="attachment_13401" align="aligncenter" width="314"]
Die Webseite, die in Nodejs auf einem Docker-Image auf einem Raspberry Pi läuft[/caption]
Mit nur vier kleinen Schritten können Sie Docker auf Ihrem Raspberry Pi verwenden! Viel Glück!
Verfasst von
Jan Toebes
Unsere Ideen
Weitere Blogs
Contact



