I’ve read quite a few articles mentioning Docker recently, but never really looked into it. So what is Docker? The developers describe it as:
Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.
In practice, it looks like a lightweight virtualization solution that facilitates apps distribution to different operating systems
and hardware platforms. For example, if your development machine is running Ubuntu 14.04 and you’ve developed an app requiring Python 3.0, Docker should make it a breeze to it on a Red Hat server running Python 2.6 using a pre-built Linux container.
A good way to get started is probably to go through the 10-minute tutorial on Docker website, and another is to checkout the Docker articles on ODROID Magazine January and February 2015 editions explaining how to install and get started with docker (Jan), and how to install pre-built images such as Ubuntu, Arch Linux ARM, Debian, etc.. and configure DLNA, CUPS (printer), and so on.
That’s it for a short introduction about docker. Hypriot, a small team of ARM developers, has released a modified Raspbian image with Docker 1.5 which adds support for IPv6, read-only containers and advanced statistics. The image includes the following key features:
- Compatible with all Raspberry Pi B, Pi B+, Pi 2
- Based upon Raspberry Wheezy
- Latest Linux kernel 3.18.8configured for optimal Docker use
- Support for BTRF and Overlay filesystems
- Includes Docker 1.5.0 (with activated high speed OverlayFS)
- 347MB download sise
- Works with 1GB or greater SD card with automatic partition resize on first boot
- Some ARM Docker Base Images for the RPi (Node.js, io.js, Python, Java) are available on DockerHub and all source code is available on GitHub (OpenSource with MIT license)
You can download the Docker-Pi Image (hypriot-rpi-20150301-140537.img.zip), and flash it to a SD card just like any other OS for the R-Pi boards with Win32DiskImager, dd, or other tools. The default username/password are pi/raspberry and root/hypriot.
If you don’t have a Raspberry Pi, the instructions provided in ODROID magazine could certainly be adapted to other boards, but in case you own a BeagleBone Black, there’s also a short Docker tutorial on Element14.