Neue Docker Version V1.13.0 für Raspberry (ARMv7) erstellen

Das Team um Docker hat eine neue Version veröffentlicht. Neben vielen Bugfixes gibt es auch einige Erweiterungen. Genauere Informationen findet man auf der Docker

https://github.com/docker/docker/releases

Das Problem ist, das es aktuell keine Debian Paket (z.b. für Raspbian) gibt aus der man Docker für die aktuelle Version installieren kann. Derzeit ist in den offiziellen Debian (Jessie) Paketen nur die Version 1.10.3, build enthalten.

Also muss man das Debian-Paket hier selber erstellen um in den Genuss der aktuellsten Version zu kommen. Alles was man dafür braucht ist ein lauffähigen Raspberry Pi 3 .Version 2 geht auch, aber dauert leider etwas länger. Das weitere Vorgehen sieht dann wie folgt aus:

Vorher jedoch auch das lokale System auf einen aktuellen Stand bringen mit:

sudo apt-get update

Aktuelle Version unter https://github.com/docker/docker.git prüfen. Derzeit aktuell ist die Version 1.13.0.

Neues Arbeitsverzeichnis Verzeichnis erstellen:

mkdir docker13
cd docker13

Um die entsprechenden Source auf den Raspberry aus dem GIT Repository zu kopieren, klont man das Docker Quellen Verzeichnis mit:

git clone https://github.com/docker/docker.git
cd docker

Das jeweilige release, hier V1.13.0 abrufen:

git checkout v1.13.0

Die anstehende Erstellung der Pakete kann hier im nächsten Schritt mehrere Stunden dauern. Da meine Server alle im Headless Betrieb laufen, wäre es tragisch, wenn nach einer Zeit die Terminal Session automatisch abgemeldet wird, oder der Laptop hier kein Strom mehr hat.

Aus diesem Grund startet man screen welches eine Session als Daemon startet, die nicht beendet wird wenn die Sitzung stoppt. Dazu einfach

screen

aufrufen. Wenn dies noch nicht installiert ist mit „sudo apt-get install screen“ installieren.

Nun die Source übersetzen und das Installation Paket erstellen lassen. Dies erfolgt fast schon langweilig automatisch mit:

make deb

Hier nur als Randnotiz. Die Docker Erstellung selber läuft in einem Docker Container ab. D.h. alle benötigten Werkzeuge usw. werden automatisch in den Container geladen und belasten nicht zusätzlich die eigene Entwicklungsumgebung. Lediglich ausreichend Speicher sollte man zur Verfügung stellen.

Wer mag, kann sich nun die Ausgaben ansehen und lernen. Alternativ kann mit der Tastenkombination STR (gedrückt halten!) A und dann D drücken. Dann läuft die Sitzung im Hintergrund weiter. Die Erstellung kann bis zu 4 Stunden auf dem Raspberry Pi 3 dauern. Später die Session wieder mit

screen -r

die Sitzung öffnen um zu prüfen wie weit die Erstellung gekommen ist.

Ist die Erstellung abgeschlossen befinden sich unter „docker13/docker/bundles/1.13.0/build-deb/debian-jessie“ die Debian Installationspakete:

Dieses wird mit

 sudo dpkg -i docker-engine_1.13.0-0~debian-jessie_armhf.deb

auf das lokale System installiert. Die Installation wir jedoch ggf. fehlschlagen, da ein Paket zusätzlich erwartet wird:

$ sudo dpkg -i docker-engine_1.13.0-0~debian-jessie_armhf.deb
(Reading database … 20379 files and directories currently installed.)
Preparing to unpack docker-engine_1.13.0-0~debian-jessie_armhf.deb …
Unpacking docker-engine (1.13.0-0~debian-jessie) over (1.12.5-0~raspbian-jessie) …
dpkg: dependency problems prevent configuration of docker-engine:
docker-engine depends on libltdl7 (>= 2.4.2); however:
Package libltdl7 is not installed.

dpkg: error processing package docker-engine (–install):
dependency problems – leaving unconfigured
Processing triggers for systemd (215-17+deb8u6) …
Processing triggers for man-db (2.7.0.2-5) …
^Cdpkg: error processing package man-db (–install):
subprocess installed post-installation script was interrupted
Errors were encountered while processing:
docker-engine
man-db

Um das fehlende Paket zu installieren muß nun noch

sudo apt-get install libltdl7

ausgeführt werden.

Dann sollte hier auch mit

 sudo dpkg -i docker-engine_1.13.0-0~debian-jessie_armhf.deb

die Installation erfolgreich sein:

Was bleibt ist neben diesem DockerServer auch seine Swarm-Nodes zu aktualisieren. Dies klappte auch bei 4 von 5 Nodes. Vermute ein Node hat hier die falsche Kernel Version, warum das prüfe ich noch:

Update 24.01.2017:

Tatsächlich gab es ein Problem beim Upgrade. Hier wurde auf einem Node ein Kernel ausgewählt, der kein overlay erlaubte. So wurde einfach der Node neu aus dem Master kopiert und neu gestartet. Nach dem Update/Upgrade lief auch dieser Node mit 1.13.0.

 

Dieser Beitrag wurde unter Docker & Container veröffentlicht. Setzen Sie ein Lesezeichen auf den Permalink.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.