Image for post
Image for post
It’s not rocket science!

This nifty little project (GitHub link) is the direct result of a discussion with Jeff Nickoloff on the PhoenixDocker #Meetup Slack channel. The composition presented here is a derivative of his work.

Have you ever found yourself in need of a “dummy” Docker daemon? Something that you could stand-up and abuse via remote API calls and then throw away when you were done with it? Recently, Jeff Nickoloff came to the Phoenix Docker Slack channel looking for just such a thing. …

Image for post
Image for post

Wherein I explore the requirements of, and develop a repeatable process for, standing up a moderately opinionated, production-ready Docker cluster using the community standard Engine, Machine, Swarm and Compose. HashiCorp Consul will be used as the key-value store for Swarm as well as providing a common discovery mechanism across all nodes.

When overlay networking was released with Docker 1.9 and Swarm 1.0 I noticed a mini explosion of articles describing how to setup Swarm clusters to leverage this excellent new feature, e.g.

These articles were pretty good introductions to clustering with Docker and Swarm but they were just that, introductions. I found myself searching for more information on the underlying key-value stores, that Swarm has an external dependency on via docker/libkv, and always came up short. What about high-availability and/or resiliency? Does the KVS actually need to be external from the cluster? What are the most common best-practices/assumptions that one should emulate when standing up a KVS and/or Swarm cluster? How to stand-up clusters in a repeatable fashion? …

Jacob Blain Christen

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store