Are you planning for your next Docker Workshop on Raspberry Pi? Are you curious to know whether the tools like Docker Machine, Docker Compose, Dockerfile, 1.12 Swarm Mode, High Availability & Load Balancing works great and can be demonstrated to the workshop audience? In case you want to know the current state of Docker containers on Raspberry Pi, this is a right place to be. In next couple of minutes, I am going to brief about what Docker images, tools, networking and security features are supported on Raspberry Pi box as of the current date.
Let’s have a quick glimpse of what popular tools works today with Docker Engine on Pi box. Below listed are few lists of tools and applications which currently works on Raspberry Pi. Please remember that this is NOT official support Matrix from Docker Inc. I just verified the tools functionality so as to keep it ready for my workshop demonstrations.

The State of Docker Engine
In my previous blog post, I talked about “Docker 1.12.1 on Raspberry Pi 3 in 5 minutes” where I demonstrated on how to get started with Docker 1.12.1 Installation on Pi box for the first time. With 1.12.1, a FIRST ARM Debian package was officially made available and there was tremendous amount of interest among the Docker users. This time I tried my hands with the latest experimental build, Docker Engine version 1.12.3 on top of the latest Raspbian Jessie Lite version.




Docker Engine looked quite stable as I was able to try out basic Docker commands like exec, run, attach etc., creating Dockerfile and building the image was smooth on Pi box. Running and stopping the containers works as smooth as you experience on VMs on your Virtual box or Cloud instance. This release should be a good baseline for demonstration of the latest Docker CLI to the workshop audience(for both beginners & advanced level users)
The State of Docker Compose
I picked up the latest stable Docker Compose version 1.8 so as to check and verify the latest compose functionality.

I followed this link to get Docker Compose version 1.8 installed on my Pi box. It went smooth and required no tweaking at all. Let us try running WordPress application(running maria-db, Apache and php) inside docker containers using docker-compose:





The overall experience with Docker Compose was positive. Tried dozens of docker-compose CLIs like exec and run and it worked great. In case you are planning to demonstrate Compose, go ahead and this should be a great tool to demonstrate the concept of Microservices to the workshop users.
The State of Docker 1.12 Swarm Mode
I verified the functionality of Swarm Mode on Docker 1.12.3 and it just works flawless. I tested the basic functionality in setting up the master and worker nodes and it worked great:

One just need to add the worker nodes as suggested in the above command and it just worked as expected. I tried $docker swarm leave option on the worker nodes and it just went smooth.
The State of Docker 1.12 High Availability:
Demonstrating HA using Swarm Mode is always an interesting stuffs to do with the container clustering. I had 5 nodes clustering setup with 5 Raspberry Pi one master and other 4 worker nodes. I took the same WordPress application and demonstrated on 5 node cluster. I scaled out the WordPress application container from 10 to 30 and then tried stopping few containers on the 3rd Pi. Automatically the new containers came up with a new IDs balancing across the swarm cluster. I haven’t tested the master node failure on Pi box but I believe it should work with minimal 3 number of master nodes on Raspberry Pi boxes.
The State of Operating Systems Docker Image:
Last September, I built the first CentOS 7.2 ARM docker image on Raspberry Pi 3 which I described in detail throughmy blog. It was well appreciated effort and quite accepted by Docker community. I was trying to build Dell legacy application for ARM architecture and the legacy application was tightly coupled to CentOS 7.x distribution. Hence, just though to pick up necessary packages from Fedora repository and successfully built the required Docker image. Other than CentOS, Ubuntu, Alpine linux and Arch-Linux are few of the most popular Docker OS image which can be demonstrated to the workshop audience.

The State of Tools(Monitoring, Management):
Two months back, I published a blog post on “ Turn Your Raspberry Pi into Out-of-band Monitoring Device using Docker “. I pushed Nagios Docker image for the first time for ARM architecture which you can use freely from Dockerhub. Demonstrating the monitoring tool like Nagios running inside Docker on Raspberry Pi can be a great example of how Docker reduces the complexity in packaging the huge application.
Demonstrating Portainer A Simple Management UI for Docker can be a great example for those who are new to CLI and who comes from Operations Team. Recently , Portainer has gained a huge popularity due to its easy to use UI, lightweight and responsive user interface. Setting up this management tool was quite easy. Just pull the docker-compose file through GIT and you are ready to bring up the required services.


The Interface looked quite fancy. IMO, this is most lightweight UI for Docker among the list of popular UI tools available for Docker containers management.


In my future blog post, I am going to touch upon the upcoming Docker releases and compatibility matrix. Feel free to share your thoughts through twitter(@ajeetsraina)