Get Started
About Docker Apply custom metadata Docker Deprecated Features Understand the architecture
Image management
Using certificates for repository client verification Run a local registry mirror
Docker run reference Dockerfile reference Remote API client libraries docker.io accounts API Docker Trusted Registry

Using Puppet

Note: Please note this is a community contributed installation path. The only official installation is using the Ubuntu installation path. This version may sometimes be out of date.

Requirements

To use this guide you’ll need a working installation of Puppet from Puppet Labs .

The module also currently uses the official PPA so only works with Ubuntu.

Installation

The module is available on the Puppet Forge and can be installed using the built-in module tool.

$ puppet module install garethr/docker

It can also be found on GitHub if you would rather download the source.

Usage

The module provides a puppet class for installing Docker and two defined types for managing images and containers.

Installation

include 'docker'

Images

The next step is probably to install a Docker image. For this, we have a defined type which can be used like so:

docker::image { 'ubuntu': }

This is equivalent to running:

$ docker pull ubuntu

Note that it will only be downloaded if an image of that name does not already exist. This is downloading a large binary so on first run can take a while. For that reason this define turns off the default 5 minute timeout for the exec type. Note that you can also remove images you no longer need with:

docker::image { 'ubuntu':
  ensure => 'absent',
}

Containers

Now you have an image where you can run commands within a container managed by Docker.

docker::run { 'helloworld':
  image   => 'ubuntu',
  command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
}

This is equivalent to running the following command, but under upstart:

$ docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

Run also contains a number of optional parameters:

docker::run { 'helloworld':
  image        => 'ubuntu',
  command      => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
  ports        => ['4444', '4555'],
  volumes      => ['/var/lib/couchdb', '/var/log'],
  volumes_from => '6446ea52fbc9',
  memory_limit => 10485760, # bytes
  username     => 'example',
  hostname     => 'example.com',
  env          => ['FOO=BAR', 'FOO2=BAR2'],
  dns          => ['8.8.8.8', '8.8.4.4'],
}

Note: The ports, env, dns and volumes attributes can be set with either a single string or as above with an array of values.

Sep 18, 2015 at 9:14pm (PST) { "docker/compose": { "ref": "docs", "repos": [ "git@github.com:docker/compose.git" ], "sha": "7a3e4bc0150dc4f06d72dcb07f966cf2b9e9d817" }, "docker/docker": { "ref": "docs", "repos": [ "git@github.com:docker/docker.git" ], "sha": "942363d3ca119c19d82525b4b9e0c65dc35b9359" }, "docker/docker-hub": { "ref": "master", "repos": [ "git@github.com:docker/hub2-demo.git" ], "sha": "afce1a61faf7fe947155d28a2e664d277e976947" }, "docker/docker-trusted-registry": { "ref": "docs", "repos": [ "git@github.com:docker/dhe-deploy.git" ], "sha": "81b18ab1a27313efeb8d3427244344986b52f0cd" }, "docker/docs-base": { "ref": "master", "repos": [ "git@github.com:docker/docs-base.git" ], "sha": "5f2f7a0649adcea1a55182605bb93494f87da7c1" }, "docker/machine": { "ref": "docs", "repos": [ "git@github.com:docker/machine.git" ], "sha": "e919cea54de94d8c4eab8d813151f5be4b1a0aa4" }, "docker/opensource": { "ref": "master", "repos": [ "git@github.com:docker/opensource.git" ], "sha": "c1bbeb9ef713d8d462cf54229b56dba048c716bb" }, "docker/registry": { "ref": "release/2.1", "repos": [ "git@github.com:docker/distribution.git" ], "sha": "9ca7921603852314b18a6ecc19f91806935f34bd" }, "docker/swarm": { "ref": "docs", "repos": [ "git@github.com:docker/swarm.git" ], "sha": "d241eca22dba573394500475923eed6094563ac6" }, "docker/tutorials": { "ref": "docs", "repos": [ "git@github.com:docker/tutorials.git" ], "sha": "76c87ad5a1ac7234b420745cca89a1413076f38d" }, "docs.docker.com": { "ref": "refs/heads/dtr-1.3-release", "repos": [ "git@github.com:moxiegirl/docs.docker.com.git", "git@github.com:docker/docs.docker.com.git" ], "sha": "6b37e676298bfb507e6e412f1f0637dcf7a4138f" }, "kitematic/kitematic": { "ref": "docs", "repos": [ "git@github.com:kitematic/kitematic.git" ], "sha": "7baf7707caf9a797f276e668df8e8e8a203746ee" } }