Pi Zero basiert noch auf armv6l – dafür gibt es seit einigen Monaten keine neuen Kubernetes-Releases mehr und auch Docker seit 18.06.1 ist broken. Ob und wann das jemals noch gefixt wird, ist fraglich. Schade.
https://github.com/kubernetes/kubeadm/issues/253
https://github.com/moby/moby/issues/38175
So geht es trotzdem, mit einer alten Docker-Version:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
echo 'deb [arch=armhf] https://download.docker.com/linux/raspbian stretch edge' | sudo tee /etc/apt/sources.list.d/docker.list
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add --batch -
sudo apt-get update
sudo apt-get install -y docker-ce=18.06.1~ce~3-0~raspbian
# auf hold setzen, damit es nicht automatisch aktualisiert wird (z.Z. auf 18.09, welche aber für die CPU-Architektur kaputt ist)
sudo apt-mark hold docker-ce
# gegebenenfalls user "pi" zur Docker-Gruppe hinzufügen
sudo gpasswd -a $USER docker
# relogin sparen, direkt in neue Gruppe einloggen
newgrp docker
# prüfen
docker version
# Ergebnis sollte so aussehen:
#
# Client:
# Version: 18.06.1-ce
# API version: 1.38
# Go version: go1.10.3
# Git commit: e68fc7a
# Built: Tue Aug 21 17:30:52 2018
# OS/Arch: linux/arm
# Experimental: false
#
# Server:
# Engine:
# Version: 18.06.1-ce
# API version: 1.38 (minimum version 1.12)
# Go version: go1.10.3
# Git commit: e68fc7a
# Built: Tue Aug 21 17:26:37 2018
# OS/Arch: linux/arm
# Experimental: false
Soweit so gut. Es ändert nichts daran, dass die ARM CPU vom Zero steinalt ist (ARMv6Z/ARM11, BCM2835). Deshalb kann man z.B. kein offizielles Debian Image mehr nutzen, Docker steigt hier kommentarlos aus:
docker run -it debian /bin/bash
Unable to find image 'debian:latest' locally
latest: Pulling from library/debian
76e424dac3ee: Pull complete
Digest: sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5
Status: Downloaded newer image for debian:latest
root@raspberrypi:/home/pi
Was funktioniert sind z.B. Alpine und darauf aufbauende Base images:
# default Alpine
docker run --rm -it alpine cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.8.2
PRETTY_NAME="Alpine Linux v3.8"
HOME_URL="http://alpinelinux.org"
BUG_REPORT_URL="http://bugs.alpinelinux.org"
# nginx:alpine
docker run --rm -p 80:80 -it nginx:alpine
172.17.0.1 - - [06/Jan/2019:03:24:23 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36" "-"
usw.
… dazu spezielle Images unterhalb von https://hub.docker.com/u/arm32v6/
Bedenkt man, dass der Raspberry Pi Zero nur mit Versandkosten zu haben ist und dann mehr oder weniger 20€ kostet, so sollte man lieber auch noch 12-15€ mehr in die Hand nehmen und einen Raspberry Pi 3/3+ mit 4 Kernen und 64Bit support beschaffen (sofern man nur an Linux interessiert ist und keine Bastelprojekte plant, für welche Größe, Stromverbrauch etc. eine Rolle spielen).
Weil vermutlich bald ein Nachfolger des 3+ erscheint, kann man zur Zeit schon einige Abverkäufe sehen, tlw auch versandkostenfrei (immer mal wieder bei bei Pollin, Reichelt und co schauen).
Noch ein Tipp: Serial over USB aktivieren
[…] Docker 18.06 (Hinweise warum alte Version notwendig) […]