github.com/guilhermebr/docker@v1.4.2-0.20150428121140-67da055cebca/docs/sources/articles/puppet.md (about)

     1  page_title: Using Puppet
     2  page_description: Installing and using Puppet
     3  page_keywords: puppet, installation, usage, docker, documentation
     4  
     5  # Using Puppet
     6  
     7  > *Note:* Please note this is a community contributed installation path. The
     8  > only `official` installation is using the
     9  > [*Ubuntu*](/installation/ubuntulinux) installation
    10  > path. This version may sometimes be out of date.
    11  
    12  ## Requirements
    13  
    14  To use this guide you'll need a working installation of Puppet from
    15  [Puppet Labs](https://puppetlabs.com) .
    16  
    17  The module also currently uses the official PPA so only works with
    18  Ubuntu.
    19  
    20  ## Installation
    21  
    22  The module is available on the [Puppet
    23  Forge](https://forge.puppetlabs.com/garethr/docker/) and can be
    24  installed using the built-in module tool.
    25  
    26      $ puppet module install garethr/docker
    27  
    28  It can also be found on
    29  [GitHub](https://github.com/garethr/garethr-docker) if you would rather
    30  download the source.
    31  
    32  ## Usage
    33  
    34  The module provides a puppet class for installing Docker and two defined
    35  types for managing images and containers.
    36  
    37  ### Installation
    38  
    39      include 'docker'
    40  
    41  ### Images
    42  
    43  The next step is probably to install a Docker image. For this, we have a
    44  defined type which can be used like so:
    45  
    46      docker::image { 'ubuntu': }
    47  
    48  This is equivalent to running:
    49  
    50      $ docker pull ubuntu
    51  
    52  Note that it will only be downloaded if an image of that name does not
    53  already exist. This is downloading a large binary so on first run can
    54  take a while. For that reason this define turns off the default 5 minute
    55  timeout for the exec type. Note that you can also remove images you no
    56  longer need with:
    57  
    58      docker::image { 'ubuntu':
    59        ensure => 'absent',
    60      }
    61  
    62  ### Containers
    63  
    64  Now you have an image where you can run commands within a container
    65  managed by Docker.
    66  
    67      docker::run { 'helloworld':
    68        image   => 'ubuntu',
    69        command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
    70      }
    71  
    72  This is equivalent to running the following command, but under upstart:
    73  
    74      $ docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
    75  
    76  Run also contains a number of optional parameters:
    77  
    78      docker::run { 'helloworld':
    79        image        => 'ubuntu',
    80        command      => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
    81        ports        => ['4444', '4555'],
    82        volumes      => ['/var/lib/couchdb', '/var/log'],
    83        volumes_from => '6446ea52fbc9',
    84        memory_limit => 10485760, # bytes
    85        username     => 'example',
    86        hostname     => 'example.com',
    87        env          => ['FOO=BAR', 'FOO2=BAR2'],
    88        dns          => ['8.8.8.8', '8.8.4.4'],
    89      }
    90  
    91  > *Note:*
    92  > The `ports`, `env`, `dns` and `volumes` attributes can be set with either a single
    93  > string or as above with an array of values.