Running Example Voting App in Docker Cloud

Contents Update 16th June 2016 Now the base images have been updated to use alpine:3.4.0, so creating own fork isn’t necessary any more. I updated the configuration example to reflect that. General In this post I’ll show how to get the Docker’s example-voting-app to run on Docker Cloud. At the moment it requires some tweaks to the application as the service discovery in Docker Cloud is built on DNS which is a bit bugged in Alpine base image version 3.3.0 which is used in some components of the application, but that allows me to demonstrate the build mechanism that Docker Cloud offers. End result will be a scalable version of the application with HAProxy-based load balancing for both voting-app and result-app. ...

June 8, 2016 · 6 min · Ilkka Anttonen

Distributed Elixir nodes on Docker Beta and Docker Swarm

Contents General In this post I’ll take a look into running distributed Elixir nodes both on Docker Beta and Docker Swarm. When I started trying out Elixir I quickly ran into this article by Jon Harrington about running Elixir on Docker and also found out that Marlus Saraiva had done an excellent job of minimizing the Elixir containers so that they run on Alpine. The examples in the first article were a bit dated and more cumbersome than they would need to be with the modern Docker networking and also instructed about creating Elixir images which were based on Ubuntu. This post combines the examples of Jon’s article with the networking redone and with the examples running on the Marlus’ minimized images. ...

May 19, 2016 · 5 min · Ilkka Anttonen

Trying out Kubernetes 1.2

Contents General In this post I’ll go over setting up a simple application on the newly released Kubernetes 1.2 version. I am not that familiar with earlier Kubernetes versions as I haven’t been a fan of all the necessary configuration to get simple things running, but with version 1.2 a lot of progress has been made to make k8s easier and simpler to use. Installation Installing Kubernetes on OS X is straightforward. You just run the two lines ...

March 24, 2016 · 7 min · Ilkka Anttonen

Automatic scaling with Docker 1.9 and overlay network locally and in AWS

Contents General In an earlier [post]({% post_url 2015-11-25-getting-overlay-networking-to-work-in-aws-with-docker-19 %}) I demonstrated how to get the new Docker 1.9 overlay networking to work in AWS using Docker Machine. In this post I add the scaling related parts from [another earlier post]({% post_url 2015-08-05-part-2-scaling-in-amazon-aws-vpc-with-docker-docker-machine-consul-registrator-haproxy-elk-and-prometheus %}) into the mix, namely Consul, registrator and HAProxy combined with consul-template. The examples should run both locally using VirtualBox and in Amazon. Set-up in VirtualBox The set-up consists of a private registry to help speed up the creation of nodes and also to mimic a more production like environment. In addition there is an infra-server containing the Consul which is used to handle the overlay-networking configuration as well as docker swarm configuration. It also contains the optional ELK stack as well as Prometheus for monitoring. ...

December 14, 2015 · 5 min · Ilkka Anttonen

Getting overlay networking to work in AWS with Docker 1.9

Contents Update on 4.12.2015 Docker-machine 0.5.2 has been released and it works against systems using systemd, so it’s not necessary to compile it manually any more. General Docker 1.9 was released a while ago and with it the networking model was redone. Most interesting feature is the overlay networking which enables a seamless networking between containers on different hosts. The current examples mainly use VirtualBox and demonstrate how things work locally. In this article I go through the steps needed to get the overlay networking to function in AWS using Docker Machine and Swarm. ...

November 25, 2015 · 5 min · Ilkka Anttonen

Using Docker 1.10 experimental with docker-machine and VirtualBox driver (boot2docker)

Contents Update on 20.11.2015 New experimental version is 1.10. The image can be found from here. Major experimental thing is the user namespaces. Update on 27.8.2015 I ran the build for newest experimental and the image for boot2docker for experimental 1.9 can be found from here. I updated the examples to use 1.9. The post can be found from both URLs. TL;DR To use boot2docker.iso which includes the 1.10 experimental Docker (at the moment Docker version 1.10.0-dev, build 0cdc96c, experimental), create the machine with ...

November 20, 2015 · 3 min · Ilkka Anttonen

Cassandra cluster on Docker Swarm and Overlay Networking using Docker Experimental 1.9

Contents General In an [earlier blog]({% post_url 2015-07-15-docker-swarm-and-experimental-multihost-networking-with-docker-machine-and-boot2docker %}) I demonstrated how a local boot2docker based Docker experimental using overlay networking on Docker Swarm can be set up. In this article I show how a Cassandra cluster can be set-up on top of the overlay network. A boot2docker image containing the experimental version is used. Information about building it can be found [here]({% post_url 2015-08-27-using-docker-19-experimental-with-docker-machine-and-virtualbox-driver-boot2docker %}). Overview of the Architecture The set-up consists of an infra-node which contains the Consul server used as the back-end for overlay networking. As the overlay networking is still in an experimental stage it has some issues. It for example breaks the outside connectivity of the containers. This prevents building of images. For this reason infra-node is used for building. ...

September 30, 2015 · 5 min · Ilkka Anttonen

Using Docker 1.10 experimental with docker-machine and VirtualBox driver (boot2docker)

Contents Update on 20.11.2015 New experimental version is 1.10. The image can be found from here. Major experimental thing is the user namespaces. Update on 27.8.2015 I ran the build for newest experimental and the image for boot2docker for experimental 1.9 can be found from here. I updated the examples to use 1.9. The post can be found from both URLs. TL;DR To use boot2docker.iso which includes the 1.10 experimental Docker (at the moment Docker version 1.10.0-dev, build 0cdc96c, experimental), create the machine with ...

August 27, 2015 · 3 min · Ilkka Anttonen

'Part 2: Scaling in Amazon AWS VPC with Docker, Docker Machine, Consul, Registrator, HAProxy, ELK and Prometheus'

Contents General In the [previous post]({% post_url 2015-07-28-scaling-with-discovery-on-docker-swarm-with-consul-registrator-and-haproxy-with-prometheus-monitoring-and-elk-log-aggregation %}) I demonstrated scaling on a local VirtualBox environment using HAProxy based load balancing with added service discovery and scaling over multiple nodes on Docker Swarm. In this article I show how the updated scripts can be used to control an environment running on Amazon Virtual Private Cloud (VPC) environment. Update on 6.10.2015! The scripts have been quite extensively updated and cleaned up for presentation in OpenSlava 2015. I’ll describe the new functionality in a separate blogpost later, but have updated this so that the commands should work. Major addition has been the setting up of private registry both locally and in AWS and loading the images there. This also supports the experimental overlay network version of the demo. For launching containers for images not in the private registry use the shell script ./startExtService.sh as the default ./startService.sh tries to fetch the image from the private registry. ...

August 5, 2015 · 5 min · Ilkka Anttonen

'Scaling with discovery on Docker Swarm with Consul, Registrator and HAProxy with Prometheus monitoring and ELK log aggregation'

Contents Update on 5.8.2015! The scripts have been updated so that the examples can also be run in Amazon Virtual Private Cloud. More information can be found from the [second part of the post]({% post_url 2015-08-05-part-2-scaling-in-amazon-aws-vpc-with-docker-docker-machine-consul-registrator-haproxy-elk-and-prometheus %}). Update on 6.10.2015! The scripts have been quite extensively updated and cleaned up for presentation in OpenSlava 2015. I’ll describe the new functionality in a separate blogpost later, but have updated this so that the commands should work. Major addition has been the setting up of private registry both locally and in AWS and loading the images there. The startService.sh command first tried to use the local registry and if the image can’t be found there, it’s downloaded from the Docker hub. This also supports the experimental overlay network version of the demo. ...

July 28, 2015 · 11 min · Ilkka Anttonen