Docker-enabled Vagrant boxes
Purpose
Some Linux distributions don't have a pre-installed Docker engine. Public Vagrant boxes (e.g., those in Atlas and Vagrantbox.es) also lack quality support for Docker. So I build these Vagrant boxes to aid my Docker development.
I also install some handy tools for Docker.
For the impatient
Use the following public box names (all available from Atlas service):
-
Ubuntu 14.04.x LTS ("Trusty") x64:
-
williamyeh/ubuntu-trusty64-docker
, basically ubuntu-14.04.4-server-amd64 + Docker -
williamyeh/insecure-registry
, basicallywilliamyeh/ubuntu-trusty64-docker
+ Docker Registry 2.x
-
-
Debian 8 ("Jessie") x64:
-
williamyeh/debian-jessie64-docker
, basically debian-8.3.0-amd64 + Docker -
williamyeh/k8s
, basicallywilliamyeh/debian-jessie64-docker
+ Kubernetes
-
-
CentOS 7 x64:
williamyeh/centos7-docker
, basically CentOS 7.2 + Docker
Included software
-
Docker Engine
-
Docker CLI
-
Docker Compose: Fast, isolated development environments using Docker.
-
Docker Swarm: a Docker-native clustering system.
-
Docker Machine: Machine management for a container-centric world.
-
docker-bench-security: a script that checks for all the automatable tests included in the CIS Docker 1.6 Benchmark.
-
dockviz: Visualizing Docker data (
docker images --tree
replacement). -
Pipework: Software-Defined Networking for Linux Containers.
-
docker-gen: Generate files from docker container meta-data.
-
dockerize: Utility to simplify running applications in docker containers.
-
cAdvisor: Analyzes resource usage and performance characteristics of running containers.
-
weave: creates a virtual network that connects Docker containers deployed across multiple hosts and enables their automatic discovery.
-
Docker host tools: Some handy tools for managing Docker images and containers (also written by me).
-
Docker Registry 2.x (only provided in
williamyeh/insecure-registry
box) -
Kubernetes (only provided in
williamyeh/k8s
box)
Build these boxes yourself
Here are steps you can follow to build these boxes on your own.
First, install the Packer tool on your host machine.
Second, pull the Bento submodule:
# pull the Bento project
git submodule init
# copy Bento stuff to sub-directories
# since Packer doesn't push soft links to Atlas (defects!)...
./copy-bento.sh
Third, choose the box directory of your choice:
# change working directory to any specific OS;
# for example, "ubuntu-trusty"
cd ubuntu-trusty
Now, you can either generate the Vagrant box file on your machine:
# build `ubuntu-trusty64-docker`:
packer build ubuntu-trusty64-docker.json
# build `ubuntu-trusty64-docker`, VirtualBox version only:
packer build -only=virtualbox-iso \
ubuntu-trusty64-docker.json
# build `ubuntu-trusty64-docker`, VirtualBox version only,
# with pre-downloaded ISO file from `file:///Volumes/ISO/`:
packer build -only=virtualbox-iso \
-var 'mirror=file:///Volumes/ISO/' \
ubuntu-trusty64-docker.json
you'll get an 'XXX.box' file in the builds
directory, if successful.
Or, you can delegate the building and hosting tasks to Atlas:
# make sure the following environment variables are set:
# ATLAS_TOKEN
# ATLAS_USERNAME
packer push ubuntu-trusty64-docker.json
Alternatives
Some nice alternatives you may try:
-
Ubuntu 14.04 LTS ("Trusty") x64:
box-cutter/ubuntu1404-docker
supports parallels, virtualbox, and vmware_desktop providers.
-
CentOS 7.x x64:
box-cutter/centos72-docker
supports parallels, virtualbox, and vmware_desktop providers.
-
CoreOS x64:
License
Licensed under MIT license.
Copyright © 2014-2016 William Yeh - https://github.com/William-Yeh.