If you’re not already familiar with Docker, it’s a method of packaging software to include not only your code, but also other components such as a full file system, system tools, services, and libraries. You can then run the software on multiple machines without a lot of setup. Docker calls these packages containers.
Mayview Maersk by Flickr user Kees Torn
Think of it like a shipping container and you’ve got some idea of how it works. Shipping containers are a standard size so that they can be moved around at ports, and shipped via sea or land. They can also contain almost anything. Docker containers can hold your software’s code and its dependencies, so that it can easily run on many different machines. Developers often use them to create a web application server that runs on their own machine for development, and is then pushed to the cloud for the public to use.
While we’ve noticed people using Docker on Raspberry Pi for a while now, the latest release officially includes Raspbian Jessie installation support. You can now install the Docker client on your Raspberry Pi with just one terminal command:
curl -sSL get.docker.com | sh
From there, you can create your own container or download pre-made starter containers for your projects. The documentation is thorough and easy to follow.
Docker Swarm
One way you can use Raspberry Pi and Docker together is for Swarm. Used together, they can create a computer cluster. With Swarm containers on a bunch of networked Raspberry Pis, you can build a powerful machine and explore how a Docker Swarm works. Alex Ellis shows you how in this video:
Docker Swarm mode Deep Dive on Raspberry Pi (scaled)
Get all the details @ http://blog.alexellis.io/live-deep-dive-pi-swarm/
You can follow along with Alex’s written tutorial as well. He has even taken it further by using Pi Zero’s USB gadget capabilities to create a tiny Docker Swarm:
Alex Ellis on Twitter
Look ma, no Ethernet! 8 core @Docker 1.12 swarm boom USB OTG @Raspberry_Pi @pimoronipic.twitter.com/frlSQ9ePpr
The Raspberry Pi already makes many computing tasks easier; why not add deploying remote applications to that list with Docker?