Docker auf Raspbian?

24

Wie würde ich Docker ( https://www.docker.io ) auf Raspbian ausführen?

Die Anweisungen, die ich gefunden habe, sind entweder ein sehr manueller Prozess, der auf Raspbian basiert, aber mit einem sehr alten Kernel, der eine Reihe von Patches zu erfordern schien. Es gibt auch den bekannten Build von resin.io, der jedoch speziell für Arch Linux entwickelt wurde.

Der aktuelle Raspbian-Kernel ist 3.10.25, was modern genug ist, um die meisten Dinge zu haben, die Docker benötigt. Ich bin nicht über dem Aufbau eines neuen Kernels, aber ist das noch notwendig?

Hat jemand herausgefunden, wie man Docker und seine Anforderungen auf den Pi bringt?

Martijn Heemels
quelle
Interessante Frage. Ich bin auch an einer Antwort interessiert. Haben Sie diese Anweisungen überhaupt ausprobiert?
Jivings
1
Nein, ich habe alles gelesen, was ich finden konnte. Ich möchte speziell Raspbian verwenden, daher waren die Arch-Anweisungen nicht sehr nützlich. Die Raspbian-Anweisungen von Ken Cochrane scheinen sehr alt zu sein und erfordern viele Schritte, um Raspbian auf den neuesten Stand zu bringen, geschweige denn Docker, und führen nicht einmal zu einem funktionierenden Setup. Ich hatte gehofft, ein paar Informationen zu sammeln, bevor ich viel Zeit damit verbrachte.
Martijn Heemels
1
Ich habe festgestellt, dass Docker-Container nicht wirklich architekturübergreifend sind. Da sich die Container den Kernel mit dem Host-Betriebssystem teilen, sind die Anwendungen in den Containern an die armv6-Architektur gebunden. Sie können kein Docker-Image auf x86 erstellen und auf armv6 ausführen, wodurch Ihr Build-System eingeschränkt wird. Hier gibt es ein Basis-Image: index.docker.io/u/resin/rpi-raspbian
Martijn Heemels
Es ist also möglich, aber nicht zu tun, was Sie wollen?
Jivings
1
Nun, es sieht so aus, als ob ihre Behauptung self-sufficient container that will run virtually anywhereverfehlt wird. Es hört sich so an, als würde es auf etwas laufen. Docker muss mit dem Gerät kompatibel sein, auf dem es läuft. Es hört sich an wie Monooder Javawas vielversprechender ist, aber nicht wirklich was Sie brauchen. Warum brauchst du das auf dem Pi? Wenn Sie für Linux entwickeln, sollten Sie wirklich entwickeln, was es nativ unterstützt.
Piotr Kula

Antworten:

14

Ja, ich habe einen Kernel erstellt und Docker 1.0 auf das Raspbian-Betriebssystem portiert: Linux raspberrypi 3.10.37+ # 1 PREEMPT Sat Apr 19 13:28:05 UTC 2014 armv6l GNU / Linux

Ich habe meine Ausgaben auf GitHub geteilt, um anderen den Schmerz zu ersparen. Wie üblich habe ich dieses "wie besehen" ohne Gewährleistung zur Verfügung gestellt ;-)

Die Kernel & Docker Tar-Datei finden Sie hier:

https://github.com/stevef1uk/docker_for_rpi

Seahope
quelle
1
Das ist sehr interessant. Danke für das Teilen. Würde es Ihnen etwas ausmachen, die Schritte zum Kompilieren des Kernels hinzuzufügen? Insbesondere welche Optionen haben Sie in der Konfiguration geändert? Ich versuche gerade, meinen eigenen Kernel mithilfe der unter elinux.org/RPi_Kernel_Compilation aufgeführten Schritte zu erstellen .
Martijn Heemels
3
Eigentlich habe ich das schon gemacht sowie wie man Cross kompiliert. Sie finden meine Blogs hier: stevef1uk.blogspot.com/2014/06/… & stevef1uk.blogspot.com/2014/06/…
Seahope
7

Sie können auch HypriotOS verwenden, das den neuesten Docker- und Linux-Kernel für Raspberry Pi bereitstellt. Einfach das Bild flashen und Docker zum Laufen bringen!

http://blog.hypriot.com/

(Offenlegung: Ich bin ein Teammitglied von Hypriot)

Mathias Renner
quelle
Danke, mit deinem neuen Bild auf meinem neuen Pi2. Funktioniert super! Ich habe es mit einer Vielzahl von Armhf-Bildern von Docker Hub versucht.
Martijn Heemels
1
@ MathiasRenner Gibt es einen Grund, warum Hypriot nicht Open Source ist? Planen Sie, das Bild zu monetarisieren?
Jottr
1
@jottr Vielen Dank für Ihr Interesse! Eigentlich ist alles von Hypriot, was Sie benötigen, um Docker auf RPI auszuführen, Open Source. Sie benötigen (1) einen geeigneten Kernel (github.com/hypriot/rpi-kernel-builder) und (2) die Docker-Binärdatei (github.com/hypriot/rpi-docker-builder). Einfach beides bauen und installieren und los geht's!
Mathias Renner
@ MathiasRenner ah toll! Danke für die Hinweise.
Jottr
Dies funktioniert auch gut auf Raspbian Jessie; blog.hypriot.com/post/your-number-one-source-for-docker-on-arm
Arjan
3

Wenn Sie Raspbian verwenden:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install docker.io docker

Docker befindet sich jetzt im Standard-Repository.

Update : Leider ist diese Version ziemlich alt, sodass das Einspielen von Bildern aus Docker Hub im Moment nicht funktioniert.

Janghou
quelle
Die Version im Standardrepo ist super alt, 1.3.3 ab diesem Kommentar. Es funktioniert nicht mehr mit der Docker-Registrierung, sodass es größtenteils unbrauchbar ist.
DriverDan
Einverstanden. Hoffentlich wird das Paket in Raspbian bald aktualisiert, vielleicht hilft ein Bug / Feature Request
Janghou
Es gibt 1.8.3 (Oktober 2015) im Raspbian-Test-Repository.
NPHX
Siehe blog.hypriot.com/post/your-number-one-source-for-docker-on-arm für Docker 1.10 auf Raspbian Jessie.
Arjan
3

Docker unterstützt ARMv6 / v7 und sogar ARM64 (v8?), Sodass Sie es auf Ihrem Raspberry Pis ausführen können.

Befolgen Sie die offiziellen Anweisungen von Docker hier: https://docs.docker.com/engine/installation/linux/docker-ce/debian/

Wenn Sie Raspbian Jessie oder Stretch haben (siehe obige Dokumentation für andere), wäre dies:

$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
$ echo "deb [arch=armhf] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
     $(lsb_release -cs) stable" | \
     sudo tee /etc/apt/sources.list.d/docker.list
$ sudo apt-get update; sudo apt-get install docker-ce
$ sudo systemctl start docker

Sie können es dann testen (dank Docker Multiarch-Unterstützung):

$ sudo docker run --rm hello-world

Um zu vermeiden sudo, dass Sie bei jedem Docker-Aufruf etwas eingeben , können Sie die folgenden zusätzlichen Schritte ausführen : https://docs.docker.com/engine/installation/linux/linux-postinstall/

Genießen!

PS: Ich habe Ubuntu Server 16.04 für armhf installiert. Ich habe dann diese Anweisungen befolgt (für Ubuntu), um Docker darauf zu installieren: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#set-up-the-repository . Es funktioniert auch wie ein Zauber.

Huygens
quelle
2

Ich habe immer benutzt ...

curl -sSL https://get.docker.com | sh && sudo usermod -aG docker pi

Allerdings habe ich heute Morgen gerade eine Abwertungsnotiz gesehen ...

WARNING: raspbian is no longer updated @ https://get.docker.com/
         Installing the legacy docker-engine package...
Zak
quelle
Ich habe das auch gerade bemerkt - weißt du was es bedeutet? Was sind die Implikationen davon?
DavidA
Das heißt, es funktioniert heute, aber morgen wird es wahrscheinlich nicht funktionieren. Es bedeutet auch, dass Sie an das Moby-Projekt schreiben sollten (dh an die Leute, die Docker warten), ihnen sagen sollten, wie großartig es ist, und sie bitten, es weiterhin zu warten. : D
Zak
Wissen Sie, ob es eine Alternative gibt? Vermutlich konnte ich immer wieder auf den manuellen Installationsvorgang auf Raspbian zurückgreifen?
DavidA
Nein, ich weiß es nicht. Das Moby-Projekt sollte jedoch in der Lage sein, diese Frage zu beantworten.
Zak
Danke, ich strecke die Hand aus. Ich würde es hassen, Docker von Raspbian verschwinden zu sehen - es ist erstaunlich, Microservices über Docker auf einem RPI laufen zu lassen ...
davidA