The new hotness in the Linux container space.

Category Date Link Notes
CLI Aug‘15 Wharfee A very nice CLI
GUI Dec‘16 Portainer A simple NodeJS GUI
Registry Jul‘15 Portus A registry front-end that works with the v2 registry and has some user management features.
Base Images Dec‘15 phusion/baseimage-docker an arguably sane(r) Ubuntu base image
Base Images Jul‘15 gliderlabs/alpine a minimal base image that uses Alpine Linux
Orchestration Jul‘15 Rancher Manages Docker containers across a number of hosts, including load balancing and overlay networking, all with a nice GUI.
Orchestration Jul‘15 Lattice Another orchestration framework, this time developed by Pivotal.
Development Sep‘14 fig A simple way to bootstrap development environments
Development Dec‘15 codekitchen/dinghy A nice wrapper that sets up a host NFS server and other niceties
Hosting Dec‘14 Seagull A Web UI for container management
Hosting Apr‘13 Core OS Lightweight distro focused on containers
Hosting Sep‘14 dockersh Segregate logged in users into different containers
Networking Sep‘14 weave Router-based inter-host tunneling, with encryption
Networking Feb‘15 socketplane Auto-discovery and OVS for inter-host traffic

Setting up boot2docker manually on Parallels

Since I don’t have Parallels Pro, I run Docker on my older Macs like this:

  • Download a recent release and put the ISO someplace safe
  • Create a new VM manually by dragging the ISO to Parallels (use the Shared network type)
  • After first boot, use fdisk to create a primary partition in /dev/sda1 and format it using mkfs.ext4
  • Reboot so that it gets mounted and used for certificate storage
  • Do brew install docker (which gets you the CLI)
  • SSH into the VM (docker/tcuser) and copy the *.pem files from /var/lib/boot2docker/tls to your ~/.docker folder
  • Set and export DOCKER_HOST and DOCKER_TLS_VERIFY accordingly

Building The Docker Registry From Scratch (on ARM, too!)

Very simple, really, once you have Go installed. Quite quick on a Raspberry Pi 2, too:

export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH
# this fetches godep and golint
go get
# this fetches and builds the registry
go get
# test it with the default config
$GOPATH/bin/registry $GOPATH/src/