At DockerCon 2017 in Austin I gave a presentation of a Raspberry Pi cluster mixed with some UP boards. The audience really liked the visual effects of the Docker Swarm scaling a service up and down. So I show you some background details what you need to run that demo on your Raspberry Pi cluster as well.
I’m happy to announce the start of a “short” workshop were I’m going through all the steps to build a complete 64bit operating system for the Raspberry Pi 3. This 64bit HypriotOS is mainly focused on running Docker containers easily on this popular DIY and IoT device.
Imagine what happens if we’re starting to use Docker containers on IoT devices. On small and slow devices with limited system resources and connected via a damn slow network connection we do have to care differently on how to build and ship our apps. In these circumstances it pays off and it’s absolutely essential to optimize our applications and the resulting Docker images for size.
SIZE DOES MATTER
If we’re doing it right we’ll get a lot of benefits such as blasting fast download speed for updating to a new or more secured version. On wireless networks we are also reducing the costs for data transfers as well.
According to my tweet I’d like to start a new Docker challenge:
How small is the smallest Docker image we could build, which prints a “Hello Docker World!”?
Kubernetes shares the pole position with Docker in the category “orchestration solutions for Raspberry Pi cluster”. However it’s setup process has been elaborate – until v1.4 with the kubeadm announcement. With that effort, Kubernetes changed this game completely and can be up and running officially within no time.
I am very happy to announce that this blog post has been written in collaboration with Lucas Käldström, an independent maintainer of Kubernetes (his story is very interesting, you can read it in a CNCF blogpost).
Recently I did an experiment: Can we build Docker images for ARM on ordinary cloud CI services that only provide Intel CPU’s?
The idea was to get rid of self hosted CI build agents that you have to care for. If you want to provide an ARM Docker image for an open source project your task is to build it and not to setup and maintain a whole pipeline for it.
I guess you’re already knowing, one of the cheapest but powerful ARM boards is the $9 C.H.I.P. computer from Next Thing Co. @NextThingCo. It has an ARMv7 1GHz CPU with 512 MByte of main memory, 4 GByte flash memory as disk storage and is equipped with onboard WiFi and bluetooth as well.
Some time ago I wrote a detailed blog post about how to Install Docker 1.12 on the $9 C.H.I.P. computer with the help of a custom Linux kernel which I built from source for this purpose and included all the necessary kernel modules which are required to run Docker. As an outlook I mentioned that one of the kernel developers from @NextThingCo, namely Wynter Woods @zerotri, is working to support Docker officially.
Kernel development and testing takes time and finally here it is!
Docker is running on the C.H.I.P. with their latest standard kernel!
Have you seen the latest reports about the Linux kernel security vulnerability called “Dirty COW”? Dirty COW is a race condition in Linux arising from how Copy-On-Write (the COW in the name) is handled by the kernel’s memory subsystem’s use of private mappings.
The really dangerous point here is, it can be used to escape Docker containers.
So, we’re encourage you to immediately fix it with upgrading your Linux kernel on the Raspberry Pi !!!
No matter if you’re running an official Raspbian or HypriotOS, please upgrade your Linux kernel to be safe again…
At home I use some Raspberry Pi’s for some home network services, and I run these services inside Docker containers. From time to time I want to see or manage one of these containers. But I’m too lazy to get to my laptop and use the Docker CLI for that. There are two nice Docker UI’s to access your Docker engine with a web browser. Let’s have a look at both.
In its release in June this year, Docker announced two exciting news about the Docker Engine: First, the Engine 1.12 comes with built-in high availability features, called “Docker Swarm Mode”. And second, Docker started providing official support for the ARM architecture.
These two news combined beg for testing the new capabilities in reality.
With the new SwarmMode in Docker 1.12 it is really damn easy to build a Docker Swarm and connect different ARM devices to an IoT cluster.
So let’s connect a few of the $9 C.H.I.P. computers and a Raspberry Pi Zero all through a WiFi network…
Did you see the successfully launch of a really cheap ARM board for $9 only - the C.H.I.P. computer? It has an ARMv7 CPU with 512 MByte of main memory, 4 GByte flash memory as disk storage and is equipped with onboard WiFi and bluetooth as well.
With these awesome features built-in it would be really a great device to run Docker containers if only the recent Linux kernel 4.4 has the correct modules included, but it doesn’t - what a bummer!
But with spending a lot of time in building a custom Linux kernel and tweaking & testing I was finally able to install the latest Docker Engine for ARM on the C.H.I.P. — and as a result you can easily follow this tutorial and within a few minutes only you can run your first Docker container on this cute ARM board…
Today we proudly present our 1.0.0 release of HypriotOS – a container OS that takes you from Zero to Docker within 5 Minutes only, on any device of the complete Raspberry Pi family.
For this major release we’ve taken an especially great deal of trouble. Out of the box, you not only get the breaking features of the Docker Engine 1.12.1 and the latest versions of Docker Compose and Docker Machine, but also many improvements that enhance the performance, reliability and usability.
Over time many of our users have asked us exactly how we build the Docker Engine and the associated Debian packages. For instance: they’d like to hack on some new features and need the latest software releases as soon as possible.
Here I’ll share all the details on building the latest Docker version - even on a Raspberry Pi itself. Beware: while it’s not too complicated it will require a large amount of time!
So, let’s get started. Follow me down the Rabbit Hole…
In the last couple of days there were some users on our Gitter channel having problems accessing their Raspberry Pi’s with HypriotOS via Docker Machine. As we have not yet written how that works I thought I would do a short blog post on how to use Docker Machine with HypriotOS.
But that’s not all. Yesterday when I watched the DockerCon Keynote Livestream of the new Docker orchestration I wondered how Docker Machine and the new orchestration would work together.
So just for the fun of it I decided I will explore that a bit, too.
A couple of days ago I wrote a blog post about how easy it is to get a microservice application up and running with Docker and a HTTP proxy called Traefik. I explained how awesome Traefik is because it makes complex setups with HAProxy, Registrator, Consul, etc. a thing of the past.
I really thought it couldn’t get much easier. Oh boy - was I wrong!
Today as part of the Docker opening keynote Docker demostrated an evolution of Docker Swarm that simplifies this whole scenario even more. It makes setting up a Docker Swarm Cluster a really simple and straigtforward task.
Let’s see how this new thing works…
Last Saturday Germany’s biggest Raspberry Pi community event - the PiAndMore - took place for the 9th time.
In cooperation with the University of Trier the organizers were able to provide a broad range of activities. There were talks, workshops and many interesting tinker projects at display to delight even the most demanding maker heart.
It comes as no suprise that Docker was a hot topic at the PiAndMore conference, too.
A couple of weeks ago I found this really nice and neat HTTP reverse proxy called Traefik. It is meant to act as frontend proxy for microservices that are provided by a dynamic backend like Docker.
Did you realize the important part of the last sentence was dynamic?
What makes Traefik really special is its ability of adding and removing container backend services by listening to Docker events. So whenever a Docker container is started or stopped Traefik knows about it and adds the container to its list of active backend services.
With this ability Traefik can replace much more complicated setups based on Nginx or HAProxy that have to use additional tools like Registrator, Consul and Consul-Template to achieve the same kind of functionality.
So let me show you with a simple microservice example how easy it is to get started with Traefik…
Our cooperation with University of Bamberg pays off once again: We had the chance to present our Hypriot Cluster Lab at ICT 2016, the International Conference on Telecommunications. There, we were able to show the Hypriot Cluster Lab to the attendees, who were mainly scientific researchers from all over the globe.
Today we have released a new version of HypriotOS “Barbossa” - the SD card image with a ready-to-go Docker toolset for all Raspberry Pi’s. Beginning with this release we have open sourced every step to build each parts, from the kernel and root filesystem up to the SD card image.
We have also moved every build step out in the cloud to use the “programmable internet” to build and test everything with just a git push.
While it is quite hard to make something better that is already good, we feel that we were able to just do that with our latest release of HypriotOS.
HypriotOS is the easiest and fastest way to get you started with Docker on ARM and IoT devices.
It is the perfect playground for your first steps with Docker and it allows you to move to advanced stuff like Docker Clustering without breaking a sweat, too.
This is possible because we included a lot of the tools that make the Docker ecosystem awesome - for instance Docker Compose or Docker Swarm - out of the box. We also integrated the Hypriot Cluster-Lab into this release, which makes it really easy and painless to set up complex Docker Clusters.
And that’s just the tip of the iceberg. So read on to get all the glory details of this new release … :)
Running an ARM-based Docker container for IoT applications directly on Microsoft Windows looks like an unbelievable extraterrestrial technology from outer space.
This cannot be true, it must be a fake, right?
Or, is this maybe just a cheap magic trick?
Nope, believe me, that’s really true…
Besides our Download section we do have another source for getting the latest and greatest Docker for ARM.
It is a debian package repository hosted at packagecloud.io that contains lots of the stuff from our Download section.
Despite having a package repository for a couple of months now, it seems many people do not know it.
I guess that’s our own fault because we never spoke about it - we only added it to our prepared SD card images. :)
Installing or updating Docker or other Docker goodies like Docker-Compose from this repository can be done by a simple
In this post I gonna show you what you need to know to get started with this repository.
A few days ago, Docker has announced a closed BETA program for their new applications “Docker for Mac” and “Docker for Windows”. These apps are meant to simplify the usage of Docker containers for every developer even more. They try to lower the barrier to install and use Docker on your desktop and laptop computers for both Mac and Windows users.
As soon as I received the first rumors that there is a special feature built-in, which should also simplify the developers workflow for IoT applications, I was getting totally thrilled and registered immediately for the BETA program. It was really hard to wait for, but luckily I’ve received an email with my BETA invitation and access token within a few hours only.
Here I’d like to give you a first insight view how to install and use “Docker for Mac” with a basic walk-through on my MacBook Pro running the very latest OS X 10.11.4.
So, please join me on this journey…
Once in a while everyone should have a break from work and party hard. I am not saying that this event was a break for our Hypriot Team, but we definitely celebrated as real pirates do: With a worn-out sabre and rum, on board of a three-storey cake ship.
As we love to use Docker Swarm on a cluster of Raspberry Pi’s, we’d like to cover in this hands-on tutorial how to build such a cluster easily with a hardware kit from PicoCluster.
All you need is a PicoCluster kit for a 3-node or 5-node cluster, a couple of Raspberry Pi’s and the time to assemble all the parts together. The project can be completed within an hour only, and makes so much fun, too - especially when you can share this as quality time with your kids.
As you all know tomorrow will be a really special day.
We will celebrate the 3rd Docker birthday.
And of course we from Hypriot are in the thick of it.
A week ago Scaleway announced their new C2 server. I was so excited to see that they were introducing new ARM C2 servers with 8 CPUs and 32 GB of RAM. Wow!
Not until I logged in and did
lscpu did I realize that those servers were “just” Intel Atom servers.
A bit disappointed I thought what to do now? In my enthusiasm I had spun up 3 servers with 82 GB of RAM and 24 CPUs. Still with my thoughts firmly rooted in the Docker #SwarmWeek I could not resist to find out how easy it would be to set up a Swarm Cluster on those servers.
But a Swarm Cluster on its own is like a container ship without any containers - so I decided to run a Jenkins Cluster on top of the Swarm Cluster.
You might not believe me, but I was able to set up a 100 node Jenkins Cluster in less than 10 minutes. And you can do that, too.
A couple of weeks ago we have been invited by the fine folks over at the Docker User Group in Brussels to help conduct a workshop. And of course this workshop was about Docker. Still it was not your ordinary Docker workshop.
It was special because instead of being a workshop about Docker on big servers it was about Docker on really small ARM devices. The very same devices that power the upcoming IoT revolution.
Turns out it is really amazing what you can do with Docker on those tiny machines.
Here is the follow up of our blog post series about the new ARM-based router board from SolidRun which is powered by a dual core Marvell ARMADA ARMv7 CPU. In case you missed the intro a few days ago, we highly recommend reading the technical specifications first to get an impression of this board.
This time we’ll get our hands on this new board and try to install Linux with a recent kernel version and hopefully we’re able to install and run the Docker Engine the first time on this powerful device.
So let’s get started and for our second episode we connect the ClearFog Pro to a MacBookPro and powering this thing up…
For many people it comes as a surprise that one can access all the hardware of an IoT device from within a Docker container. Interestingly enough Docker is a perfect tool for managing and distributing IoT development and production environments.
To illustrate this use case we are going to create a Docker image that allows us to read the data from a temperature sensor.
Could you imagine to run a standard Linux OS and your applications of choice securely within Docker containers on a beefy WiFi router at home?
We think this will be possible soon with this new ARM-based router board from SolidRun. Thus we’ll spent a whole blog post series to install our Debian-based HypriotOS and get Docker running on this Marvell ARMADA powered Single Board Computer (SBC).
So let’s get started and for our first episode in this series we’ll dive deep into the technical specifications of the ClearFog Pro in order to get to know this neat little device.
But be prepared, this one is really a powerful beast…
My seven year old asked me how does a traffic light work. Before explaining too much we put some LEDs and wires together and did a hands-on tutorial. Finally we had a pedestrian crossing with a push button controlled by an app - of course - running dockerized on a Raspberry Pi 3.
If you thought that it was pretty easy to set up a Swarm Cluster after our last post - you are going to be pretty surprised to find out that there is still room for improvement.
With our Hypriot Cluster Lab it is possible to get up a Swarm Cluster with just one command. Follow along to learn how this is possible.
This week is dedicated to Docker #SwarmWeek. In this tutorial we show you how easy it is to setup a Docker Swarm with HypriotOS and the standard
We’ve just prepared a new beta release of HypriotOS 0.7.0 Berry which is based upon an updated 0.6.1 Hector. Feel free to check it out: /downloads/.
Today morning we finally got our Raspberry Pi 3’s from ThePiHut. They have been overwhelmed by the number of orders.
While waiting for the delivery we already heard from our community that the current HypriotOS SD image does not boot.
But with some little tweaks the first people have started running Docker containers with HypriotOS. We will update our image builder soon and publish a new HypriotOS image for an easy out-of-the-box experience.
Running Docker containers on the latest high-density ARMv8 cloud servers lets you operate your data center at lower costs and gives you the ability to scale your business even faster. In this article we demonstrate the technical ground work of compiling Docker and bootstrapping all the necessary development tools.
With the recent release of Docker 1.10.0 it is a good time to talk about Docker on ARM. As many of you know our mission is to make Docker (and container technology) a first class citizen on ARM devices.
With Docker 1.10.0 it is finally possible to build Docker for ARM from the offical Docker repository.
Mind you - not everything that works for x86 is possible for ARM yet, but quite a lot is already working today. And it is a first important step towards offical support for Docker on ARM.
In this blog post I am going to walk you through all the steps that are needed to test, build and package Docker on ARM. And as an extra bonus I am showing you how to do this on the most advanced ARM on-demand cloud-platform ever.
Last Saturday one of the more promising Kickstarter campaigns that piqued our curiosity ended after 44 days and was able to raise 1.7 million dollars. It was a campaign to fund the cheapest 64-bit ARM board that can currently be bought for money.
The Pine A64 sells for 15 bucks.
So why is that noteworthy when there are boards like the Pi Zero around that sell for $5?
It very much is, when you put that price into perspective. The cheapest 64-bit ARM board we knew before the Pine was the NVIDIA ShieldTV, which sells for about $200. Next comes the much more expensive AMD Opteron A1100 series where an individual chip alone starts with a price tag of $150.
All in all that means that the Pine A64 is the most affordable way to lay your hands on real 64-bit ARM hardware - and that by a long shot! So what can you actually do with such a device?
It all began when Dieter aka @Quintus23M started to experiment with the NVIDIA ShieldTV. The ShieldTV is a curious little thing. Sold as a media hub for your living room it does deliver one teraflop of processing power. On top of that it is one of the first 64-bit ARM boards that can be bought for a reasonable price.
Regular readers of our blog know that it is not in Dieter’s nature to resist the Sirens voices of such an appealing beauty for long. Read on to learn what happened next…
An introduction to Docker, hands-on tutorials, live demos and roughly 30 attendees.
This is the summary of the first Docker meetup that we organized in cooperation with University of Bamberg. As a supplement to this event yesterday, we share the pictures and the slides of the presentation.
As for today, up to the latest Go version 1.5.2 there is no official binary release of the Go runtime available for ARM devices. Maybe you can install it as a package from your operating system, but these packages are almost outdated.
For this reason, anyone who wants to use GOLANG (or Go for short) on an ARM device has to compile it by himself. This is a cumbersome and time consuming task, which sometimes leads to bad results.
To cover these issues, we’ll explain in this short and basic tutorial how to compile and test the Go compiler runtime by yourself. We’d like to cover all the details you’ll need from the ground up. And with having this basic understanding then it’s easier for everybody to build and use the Go compiler in a consistent and reproducible way.
So let’s get started with building your own Go environment on ARM…
I don’t really know how this happened. Again. :(
Somehow over and over again these little ARM devices and maker devboards end up on my desk.
So what is it this time?
Well, look at this beauty because words cannot even begin to describe it:
Alright, start breathing again.
It is called the Nvidia ShieldTV and it’s meant to be a media center. Besides, it is one of the first Android gaming consoles that actually is worthy of the name.
It would be a really great Christmas present for my son. But that is purely hypothetical and he is totally out of luck here.
Why? Well, because the Nvidia Tegra X1 CPU is one of the first 64-bit ARM CPU’s that can be bought now and it is even affordable with a price tag well under 200 bucks.
Being both Dieter and part of the Hypriot crew it should be clear now where this is heading, right? As you all know Docker pirates love to be ARMed with little explosive stuff - and it doesn’t get more explosive than the Nvidia ShieldTV.
So my son won’t get to play any games soon because I need to get Docker running on this little beauty. A device engineered for performance and made to game. So, let’s start playing…
Today we wanna share something with you that we have been working on for the last couple of weeks. And we are pretty exited about it, too. It is based on our beloved HypriotOS and makes it dead simple to build Docker clusters.
Until now it was not exactly easy to get started with Docker clustering. You would have needed specific knowledge and lots of time to manually configure the cluster and its individual nodes.
Well, that’s now a thing of the past.
May we introduce to you the newest member of the Hypriot family: The Hypriot Cluster Lab!
Today we are proud to present a guest contribution from the community. Marcel Großmann, a research assistant at the University of Bamberg, Germany, shows in a short test that the hardware family on which our ARMed Docker runs is probably much larger than we ever thought. But rather than anticipating the punch line, let’s give the word to him!
Hard on the heels of Docker announcing major changes with Docker 1.9 we are making the newest Docker goodies available on HypriotOS. We are really happy that we were able to finish our new release called “Hector” just in time for DockerCon EU.
If you like a personal demo of what’s in store for “Hector” just ping @Quintus23M on Twitter and meet him in person at DockerCon EU. Dieter and Andreas brought their treasure chest filled with Raspberry Pi’s to Barcelona and are eager to show off a bit.
We have recently released our new SD card image called Will. It is the ultimate Docker playground with Docker Engine, Docker Compose, Docker Swarm and Docker Machine preinstalled. This image now also supports the new 7” Raspberry Pi Touch Display out-of-the-box. So we thought, wouldn’t it be cool to have Kitematic running directly on your Raspberry Pi? And yes, we did it.
We are happy to announce that after months of hard work we are now releasing a new major version of HypriotOS called “Will”.
Highlights are the upgrade from Raspberry Wheezy to Jessie, the upgrade of the included Raspberry Pi firmware, support for Device Tree and the addition of the most recent versions of Docker Compose, Docker Swarm and Docker Machine to the image.
It is - more than ever - the ultimate Docker playground for the Raspberry Pi 1 & 2.
Here comes Release Candiate 2 of our brand new Get-Docker-Running-in-under-5-Minutes Hypriot SD card image. It is the ultimate Docker playground for the Raspberry Pi 1 & 2.
This image builds on the RC1 we released roughly two weeks ago and fixes a couple of issues that were reported by our community.
We also upgraded the included firmware as well as the Linux-Kernel- and the Docker-Version.
Here comes Release Candiate 1 of our brand new Get-Docker-Running-in-under-5-Minutes Hypriot SD card image. It is the ultimate Docker playground for the Raspberry Pi 1 & 2.
This image builds on the Beta Version we published six weeks ago and fixes a couple of issues that were reported by our community. The positiv feedback we got spurred us on to make this release even better.
I just want to share some screenshots with you. Today I have played with Kitematic on a Windows Server 2016 TP3 and made it talk to the Windows Docker Engine. Yes, no VirtualBox in between. Just starting native Windows Containers from the Kitematic interface.
The great ARMed flood has begun. Especially for the sake of the IoT, every day new tiny devices pop up all around the world. And since most of these devices are build on top of the ARM architecture, with each new device, ARM gets more important compared to the x86 architecture proposed by Intel/AMD. Maybe you even need to run your next app on ARM! Thus better be prepared and port apps to ARM, it’s basically just one step to take.
If you followed our guides about setting up a git service or about setting up a blog on your Raspberry Pi, you might want to access these services from the internet. In most cases, this requires three steps to be done. We will show how to take them successfully.
What’s even better then Wheezy? Yes, your right - that’s Jessie.
And that’s not only because we very much like what crazy stuff Jessie is doing with Docker. No, it’s because Jessie is the next version of the Debian operating system that forms the foundation of our SD card image.
In this blog post we show you how easy it is to install Swarm on your Raspberry Pi and how to set up a Raspberry Pi Swarm cluster with the help of Docker Machine.
We have built a little “Pi Tower” with three Raspberry Pi 2 model B and combined them into a Docker Swarm cluster.
Within the blogging community static site generators have been an exceptional hot topic in the last couple of years (at least before Docker appeared). There are even whole projects dedicated to giving an overview of the most popular static site generators.
One of the first static site generators that got really popular was Jekyll, which was conceived by Tom Preston-Werner of Github fame. Typically static site generators transform input (e.g. text in a lightweight markup language such as Markdown or reStructuredText) to static HTML with the help of templates and filters.
Hypriot had a short demo session (16:45 - 17:15 PDT) on the second day of the DockerCon 2015 in San Francisco,CA (USA). The goal of the demo was to show that Docker is a really lightweight “virtualization” solution that can be easily run on small IoT devices.
The last couple of days Mathias Renner and I were busy creating a comprehensive Getting Started guide for Docker on the Raspberry Pi. Our goal was to give users easy to understand step by step instructions on how to get Docker running on a Raspberry Pi.
After nearly two months of development Docker 1.6.0 was finally released into the wild. Being right on the heels of the Docker team we were able to create an ARM compatible version within minutes and of course you can download it here as a Debian package.
In this post we show you the first steps how easy it is using Kitematic to control a Docker engine running on a Raspberry Pi. Finally we demostrate in a small screencast how to run an unbelievable amount of 101 web servers on a single Raspberry Pi 2.
In our last blog post we showed you how to interact with the GPIO ports and how to turn on one LED. Now for some more magic lights we create a little Node.js application that drives a NeoPixel LED strip from Adafruit in a Docker container.
With Docker on the Raspberry Pi we are able to connect cloud tools with IoT devices. So how can we interact with the real world from inside a Docker container? Let’s see and get physical…
In this blog post we gonna walk you through the different steps that are necessary to get you started with Docker Compose and show how to use it.
To demonstrate the benefits of Docker Compose we are going to create a simple Node.js “Hello World” application which will run on three Docker Node.js containers. HTTP requests will be distributed to these Node.js nodes by an HAProxy instance running on another Docker container.
If you like to stay on the cutting edge of things as much as we do you will be happy to hear that there is an easy way to test drive Docker 1.6 RC2 on your Raspberry Pi.
Time is running and it is nearly a month since we released our last ARM Docker SD card image for the Raspberry Pi. Listening to our users and having some ideas of our own we are back again with our latest version of HypriotOS.
We dubbed it “Jack” as every proper software release should have a fitting code name.
Nearly two weeks ago we have been blown away by the positive feedback we got for our first Raspberry Pi SD card image. It allowed people to get up and running with Docker on the Raspberry Pi in no time.
The positive feedback we received and the fact that two days later Docker 1.5.0 was released did motivate us to create an improved version of our Get-Docker-Up-And-Running-On-Your-Pi-In-No-Time SD card image.
We just had our short moment of fame when we were featured on the docker website.