alexellis / docker-arm

Build Docker and Swarm on an ARM SoC like the Raspberry Pi
GNU General Public License v3.0
875 stars 100 forks source link

Guide: ARMv6 (RPi Zero) bootstrap Jessie or Stretch #19

Open alexellis opened 7 years ago

alexellis commented 7 years ago

To install Docker on ARMv6/PiZero you must follow the tune-up guide #16. Add 1-2GB of swap memory.

Option A: Jessie Flash Jessie Lite then run:

$ curl -sSL get.docker.com | sh

Option B: Stretch If you're on stretch then things are more complicated.

Try editing this file and inserting "jessie" instead: /etc/apt/sources.list.d/docker.list

Now you can clone docker/docker and start testing one of the issues listed in this repo under the label: community-supports-docker.

Check your Docker version:

pi@stretch-zero-1:~ $ cat /etc/os-release 
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
pi@stretch-zero-1:~ $ sudo docker version
Client:
 Version:      17.05.0-ce
 API version:  1.29u
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:30:54 2017
 OS/Arch:      linux/arm

Server:
 Version:      17.05.0-ce
 API version:  1.29 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:30:54 2017
 OS/Arch:      linux/arm
 Experimental: false
pi@stretch-zero-1:~ $ uname -a
Linux stretch-zero-1 4.9.41+ #1023 Tue Aug 8 15:47:12 BST 2017 armv6l GNU/Linux
pi@stretch-zero-1:~ $ 

Before building you will need to apply this patch to the Dockerfile.armhf file:

diff --git a/Dockerfile.armhf b/Dockerfile.armhf
index 6103c5a3a..4a64ca10c 100644
--- a/Dockerfile.armhf
+++ b/Dockerfile.armhf
@@ -15,7 +15,8 @@
 # the case. Therefore, you don't have to disable it anymore.
 #

-FROM armhf/debian:jessie
+#FROM armhf/debian:jessie
+FROM resin/rpi-raspbian:jessie

 # allow replacing httpredir or deb mirror
 ARG APT_MIRROR=deb.debian.org
@@ -78,7 +79,7 @@ ENV GOPATH /go

 # We're building for armhf, which is ARMv7, so let's be explicit about that
 ENV GOARCH arm
-ENV GOARM 7
+ENV GOARM 6

 # Dependency for golint
 ENV GO_TOOLS_COMMIT 823804e1ae08dbb14eb807afc7db9993bc9e3cc3
alexellis commented 7 years ago

This is the error I get on boot-up, not sure if these deps are 100% required or not:

WARN[0003] Your kernel does not support swap memory limit
WARN[0003] Your kernel does not support cgroup cfs period
WARN[0003] Your kernel does not support cgroup cfs quotas
WARN[0003] Your kernel does not support cgroup rt period
WARN[0003] Your kernel does not support cgroup rt runtime
WARN[0003] Unable to find cpuset cgroup in mounts
WARN[0003] mountpoint for pids not found