• This repository has been archived on 28/Feb/2020
  • Stars
    star
    875
  • Rank 51,674 (Top 2 %)
  • Language
    Shell
  • License
    GNU General Publi...
  • Created over 8 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Build Docker and Swarm on an ARM SoC like the Raspberry Pi

Docker on ARM

After a lot of hard work it became official and Docker came to the Raspberry Pi.

In this repository you will find:

  • a curated list of links for getting started with Docker on Pi
  • tutorials around Swarm and Swarm Mode
  • ARM specific images to get you up and running in no time.

If you've not read the Raspberry Pi blog post then you can see it here:

Getting up close and personal with Docker Swarm Mode

Feedback & questions

I'm a Docker Captain so I'd love to hear from you with your questions, comments and suggestions on Twitter @alexellisuk or through the blog comments sections.

License & contributions

This content is licensed under GPLv3. Contributions to keep Dockerfiles up to date and relevant are welcome - also happy to extend the coverage and take updates to the guides. Please just raise an issue before the PR for discussion.

Lead articles

Since I started this repository the installation of Docker and its native clustering modes has changed. This section gives you a summary of tutorials for each part.

Getting started with Docker on the Pi

If you want to see what Docker can do on the Pi, or just want to learn about it then head over to this guide:

New Swarm Mode

Docker Swarm, originally 5 nodes, now 7

Check out my video where I set up a swarm with 7 different Raspbery Pi 2s and demo the Swarm Visualizer project.

For an overview of Swarm Mode:

Mano Marks put together a ReactJS Swarm Visualizer tool. It was originally demoed at Dockercon over three huge screens. He's accepting contributions so this is a great chance to pitch in.

OTG networking for Raspberry Pi

Set up Swarm Mode with OTG networking, look ma, no ethernet!

Physical Hardware and GPIO

One of the most exciting ways Docker and the Raspberry Pi work together is through GPIO. You can access hardware such as the products by Pimoroni through containers and build/ship/run/deploy your apps.

For a prime example see my Dockercon 2016 Demo of a set of IoT sensors:

Classic Docker Swarm

Up until Dockercon 2016 the Docker-way to create a swarm was through a special Docker image called swarm. This repository was commissioned to support a tutorial published in Issue 163 of Linux User and Developer Magazine. If you didn't get a copy of the magazine, you can pick up a digital edition or follow a simplified online guide.

Published print article

This article was retweeted by @Docker on Mar 31 2016, so head over to the blog and have a read.

Follow this quick-start guide to get Docker and/or Swarm up and running on your PI Zeros right away.

ARM specific images

If you want to try Docker or Docker Swarm on ARM or are already using it, then you will find these resources useful:

  • /images

No official Docker images work on the ARM architecture because they contain binaries built for x64 (regular PCs). I've curated separate images for PI 2/3 and PI Zero. You can read more about this in the Getting Started Tutorial

  • Nginx
  • Go 1.5
  • Go 1.6
  • Consul
  • Redis
  • Node.js 4.x
  • Several examples of GPIO
  • Build Docker itself

Contributions are welcome, please open an issue with your suggestion and once confirmed I'll be happy to merge the changes. You can also find a number of additional images maintained by the Hypriot team.

Looking for the old README for this repo?

Head over to README_CLASSIC.md

Copyright Alex Ellis 2016

More Repositories

1

k3sup

bootstrap K3s over SSH in < 60s πŸš€
Go
5,267
star
2

arkade

Open Source Marketplace For Developer Tools
Go
3,546
star
3

awesome-baremetal

Bare-metal is awesome. Let's share our favourite tools.
1,424
star
4

k8s-on-raspbian

Kubernetes on Raspbian (Raspberry Pi)
Shell
881
star
5

derek

Reduce maintainer fatigue by automating GitHub
Go
790
star
6

growlab

A global contest to grow and monitor your own food with Raspberry Pi
Python
441
star
7

HandsOnDocker

Get hands-on with Docker through a dozen self-paced and progressive labs.
C#
438
star
8

mine-with-docker

Mine cryptocurrencies with Docker containers and get paid in Bitcoin (BTC)
308
star
9

registry-creds

Replicate Kubernetes ImagePullSecrets to all namespaces
Go
306
star
10

jaas

Run jobs (tasks/one-shot containers) with Docker
Go
303
star
11

firecracker-init-lab

Build a Firecracker microVM from a container image
Shell
179
star
12

expressjs-k8s

Express.js microservice with a Dockerfile, Kubernetes YAMLs and a non-root user
JavaScript
165
star
13

run-job

Run a Kubernetes Job and get the logs when it's done πŸƒβ€β™‚οΈ
Go
162
star
14

spotminer

Golang automation for mining cryptocurrencies on the Spot Market
Go
161
star
15

docker-blinkt-workshop

Get into physical computing with Docker and Raspberry Pi
Python
152
star
16

go-execute

Automate CLI commands with Go
Go
134
star
17

ghost-on-docker

Ghost Blog on Docker - Dockerfile for ARM etc
Makefile
111
star
18

k8s-tls-registry

Setup a privateΒ Docker registry with TLS on Kubernetes
90
star
19

openfaas-puppeteer-template

OpenFaaS template for headless Chrome and Puppeteer
JavaScript
90
star
20

civo-fluxcd-expressjs

FluxCD and Express.js GitOps tutorial for Civo
82
star
21

hash-browns

Generate SHA256 hashes in Go with Prometheus metrics
Go
76
star
22

rodak

Build your own Rodak - portable Kodak Brownie powered by Raspberry Pi
Python
72
star
23

phototimer

A smart time-lapse driver for Raspberry Pi using raspistill
Python
69
star
24

leaderboard-app

GitHub leaderboard for your organisation or repo (Serverless SPA)
Go
67
star
25

raspberrypi-youtube-streaming

Stream straight to YouTube from your Raspberry Pi with Docker.
Shell
63
star
26

quickstart-prometheus

Quickstart for Prometheus
62
star
27

faas-containerd

containerd and CNI provider for OpenFaaS
Go
61
star
28

aspnet-voteservice

Windows Containers for Docker Voting App
JavaScript
60
star
29

helm3-expressjs-tutorial

Guide to Helm 3 with an Express.js microservice
58
star
30

cli-progress-animation

Coloured progress-bar for your Golang CLI
Go
56
star
31

swarmmode-tests

Series of test cases for Docker swarmmode
JavaScript
56
star
32

mongodb-function

OpenFaaS Function that makes use of a connection pool to access MongoDB
JavaScript
53
star
33

async-example

Asynchronous patterns in Node.js by example: async.waterfall/series/queue
JavaScript
52
star
34

href-counter

Golang multi-stage build to count links within a page for SEO
Go
52
star
35

faas-dockercon

Functions for Dockercon
JavaScript
49
star
36

tensorflow-serving-openfaas

Example of using TensorFlow Serving with OpenFaaS
Dockerfile
47
star
37

pizero-docker-demo

Live IoT cluster demonstration
Shell
46
star
38

jenkins2docker

Jenkins 2.x recipe with docker-compose
44
star
39

enviro-dashboard

Environmental monitoring (with Raspberry Pi sensors) and InfluxDB/Grafana
Python
43
star
40

blinkt_go_examples

The beginning of Blinkt examples programs in Go
Go
37
star
41

funker-dispatch

An API Gateway for serverless functions on Docker Swarm (deprecated, see: openfaas.com)
JavaScript
37
star
42

pi_zero_stock

PI Zero Stock tracker in Node.js with Redis back-end to cache results
HTML
36
star
43

minio-gauge

A Minio pressure gauge with the Raspberry Pi and Blinkt! from Pimoroni, see in real-time how busy your S3 cloud storage is
Python
36
star
44

dockerlabs

Moved to Hands On Docker, click for details.
35
star
45

sponsors-functions

GitHub Sponsors webhook receiver and Discord forwarder
JavaScript
33
star
46

openfaas-streaming-templates

Stream data from ffmpeg/Node.js/Bash over HTTP with OpenFaaS
Dockerfile
32
star
47

fstail

Scan a directory for changed files and tail them
Go
32
star
48

upload-assets

GitHub Action to upload multiple assets to a release
JavaScript
31
star
49

twitter-bots

Learn to create Twitter bots by example.
JavaScript
30
star
50

kubernetes-todo-go-app

A TODO API for Kubernetes written in go
Go
30
star
51

blinkt_go

A Golang library for the Pimoroni Blinkt!
Go
28
star
52

sshdkit

Example for building a bootable SSHD system with LinuxKit
Shell
28
star
53

crud-postgresql-nodejs-openfaas

Build a CRUD API with Postgresql and Node.js with OpenFaaS
28
star
54

gumroad-custom-workflow

Get webhooks in Slack every time you sell a product on Gumroad
JavaScript
27
star
55

seeds2

A Python application for live tweeting photos of your seeds growing on your Raspberry Pi.
Python
26
star
56

iot-sensors-mqtt-openfaas

Collect, plot and analyse sensor readings from your IoT devices with OpenFaaS
Python
26
star
57

hmac

Validate hmac signatures in Go
Go
26
star
58

2020

Make your own 2020 ASCII art
JavaScript
26
star
59

minikube-operator

An operator for Minikube - Kubernetes on Kubernetes
Go
25
star
60

function-storage-example

Serverless Functions storage tutorial with Minio and OpenFaaS
Python
25
star
61

inlets-connect

A tiny HTTP CONNECT proxy 🚦
Go
23
star
62

guidgenerator-aspnet

Build and deploy an ASP.NET WebAPI application with traditional .NET on Windows with Docker
JavaScript
23
star
63

containerd-arm

Arm64 & armhf binaries of containerd
22
star
64

faas-twitter-fanclub

Serverless polaroids - posted to Twitter for GitHub stars
Python
22
star
65

inlets-heroku-tutorial

Run inlets on Heroku to tunnel local endpoints for free
Dockerfile
21
star
66

mkaas

mkaas: minikube on Kubernetes with CRDs
Go
21
star
67

datacenter-sensor

Sensors for the datacenter to protect against intruders and high temperatures
JavaScript
20
star
68

windowscontainers-jenkinsci

Windows Containers PoC for Server Core
20
star
69

repaint-the-past

Full instructions for repainting the past
Python
19
star
70

nicehash-overwatch

Keep an eye on your stats with the Nicehash mining pool
JavaScript
19
star
71

zumopi

Zumo robot control code for Raspberry PI and Wiimote
Python
18
star
72

comment-vibes

OpenFaaS CRUD sample with a Postgres backend and GitHub emojis as input.
Go
16
star
73

alexa-demos

Series of demos for the Amazon Alexa service
JavaScript
14
star
74

alexa-blinkt

JavaScript
14
star
75

tinkerbot

ChatOps for Tinkerbell
Go
13
star
76

PlanningPoker

PlanningPoker for estimating story points in SCRUM
HTML
13
star
77

mqtt-to-s3

mqtt-s3-example
Python
13
star
78

express-middleware-sinon

Express middleware with Sinon testing
JavaScript
13
star
79

lambda-on-openfaas-poc

A PoC for running Lambda functions unmodified on OpenFaaS
Go
12
star
80

multiarch-templates

Multi-arch templates for OpenFaaS
JavaScript
12
star
81

workflow-yaml-template

Rudimentary YAML workflow runner for OpenFaaS
Go
12
star
82

minty

Minting OIDC tokens from GitHub Actions for use with OpenFaaS
Go
11
star
83

release-it

CI example from Everyday Golang
Makefile
10
star
84

goto

My URL shortener
JavaScript
10
star
85

github_counter_faas

Example FaaS stack for Raspberry Pi (ARM) to integrate with Github events.
Python
10
star
86

webhook-tester

I just use this repo for testing Github integrations.
JavaScript
9
star
87

motephat-alexa

Control Pimoroni's (Mote) homelighting kit for the Raspberry Pi through the Alexa Skills kit
Python
9
star
88

eyes-in-the-sky

Instructions and Dockerfiles for tracking flights with your Raspberry Pi and a USB TV stick.
9
star
89

php7-swoole-template

OpenFaaS PHP7 template using Swoole
PHP
9
star
90

bulk-twitter-follow

Follow a bulk list of people on Twitter using the API
Python
9
star
91

restic-minio-civo-learn-guide

Backup your data using Restic, Minio, and Civo
9
star
92

locust-openfaas

Locust load-testing tool on OpenFaaS
Python
8
star
93

kubecon-blog

My blog about my KubeCon talk, also my demo
Go
8
star
94

scroll-phat-node

Work-in-progress node.js library for Pimorani's scrollPhat
JavaScript
8
star
95

captains-list

Gives a list of Docker Captain Twitter handles
HTML
8
star
96

mailbox

mailbox: a dead-letter queue for NATS Streaming
Go
8
star
97

arkade-get

Get all the CLIs you need from arkade for a GitHub Action
JavaScript
8
star
98

updateip

Update your Namecheap external IP with Dynamic DNS
Go
8
star
99

pimeter

Smart energy usage meter for Raspberry PI
JavaScript
7
star
100

static-site-template

Static site template with OpenFaaS and Nginx
Dockerfile
7
star