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

How can I help test Docker for RPi? #17

Open alexellis opened 7 years ago

alexellis commented 7 years ago

The last official Docker binaries for Raspberry Pi (Raspbian) were released in May at version 17.05. 17.05 is fully working including Docker Swarm and is available via curl -sSL get.docker.com | sh.

Support was going to be dropped for Raspbian (and ARMv6) from 17.05 onwards, but fortunately the decision was re-considered.

We need to test Docker 17.07 RC on Raspbian Jessie and Stretch on the ARMv6 (Pi Zero/B/B+) and ARMv7 (RPi 2/3) platforms. Unfortunately this may mean building from source which can take some time and can be tricky on a small device.

Please setup an environment with instructions in #16

Then pick one or all of the following issues:

praseodym commented 7 years ago

With rebranding to Docker CE, a new repository was introduced with a new docker-ce package (instead of docker-engine). Docker CE 17.06 works fine on Raspbian using the official instructions for Debian: https://docs.docker.com/engine/installation/linux/docker-ce/debian/#install-using-the-repository

vattybear commented 7 years ago

I have successfully tested these on Raspberry Pi 3 - some details below.

Device : Raspberry Pi 3 Linux red_pi 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linux

High Level Instructions

Prep Device

Install Dependencies

Checkout all necessary code and build

$git clone https://github.com/moby/moby

Swap pre-installed docker version for built version

Server: Version: 17.06.0-dev API version: 1.31 (minimum version 1.12) Go version: go1.8.3 Git commit: 5fa6df34d Built: Sun Aug 20 18:16:00 2017 OS/Arch: linux/arm Experimental: false

## Lets test docker itself first

$ sudo docker run armhf/hello-world

Hello from Docker on armhf! This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:

  1. The Docker client contacted the Docker daemon.
  2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
  3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
  4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account: https://hub.docker.com

For more examples and ideas, visit: https://docs.docker.com/engine/userguide/


## Test docker swarm with faas from alexellis 

Start a docker swarm (single node is fine)
`$ docker swarm init `

Lets get alexisellis's faas code (to test docker swarm) 

`$git clone https://github.com/alexellis/faas`
`$cd faas`
`$./deploy_stack.armhf.sh`

Find your ip address
`$ifconfig `

Then open up browser and hit http://<use ip from ifconfig>:8080 to see the faas menu.

# Success!
alexellis commented 7 years ago

Thanks for compiling all the instructions and comments into one 👍

alexellis commented 7 years ago

@praseodym it really doesn't work fine which is the point of these issues. Please work through the issues and you'll see what's going wrong both on ARMv6 and with Swarm.