123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- :title: Puppet Usage
- :description: Installating and using Puppet
- :keywords: puppet, installation, usage, docker, documentation
- .. _install_using_puppet:
- Using Puppet
- =============
- .. note::
- Please note this is a community contributed installation path. The only 'official' installation is using the
- :ref:`ubuntu_linux` installation path. This version may sometimes be out of date.
- Requirements
- ------------
- To use this guide you'll need a working installation of Puppet from `Puppetlabs <https://www.puppetlabs.com>`_ .
- The module also currently uses the official PPA so only works with Ubuntu.
- Installation
- ------------
- The module is available on the `Puppet Forge <https://forge.puppetlabs.com/garethr/docker/>`_
- and can be installed using the built-in module tool.
- .. code-block:: bash
- puppet module install garethr/docker
- It can also be found on `GitHub <https://www.github.com/garethr/garethr-docker>`_
- 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
- ~~~~~~~~~~~~
- .. code-block:: ruby
- 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:
- .. code-block:: ruby
- docker::image { 'base': }
- This is equivalent to running:
- .. code-block:: bash
- docker pull base
- Note that it will only if the 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 exec. Note that you can also remove images you no longer need with:
- .. code-block:: ruby
- docker::image { 'base':
- ensure => 'absent',
- }
- Containers
- ~~~~~~~~~~
- Now you have an image you can run commands within a container managed by
- docker.
- .. code-block:: ruby
- docker::run { 'helloworld':
- image => 'base',
- command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
- }
- This is equivalent to running the following command, but under upstart:
- .. code-block:: bash
- docker run -d base /bin/sh -c "while true; do echo hello world; sleep 1; done"
- Run also contains a number of optional parameters:
- .. code-block:: ruby
- docker::run { 'helloworld':
- image => 'base',
- command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
- ports => ['4444', '4555'],
- volumes => ['/var/lib/counchdb', '/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 that ports, env, dns and volumes can be set with either a single string
- or as above with an array of values.
|