|
@@ -0,0 +1,95 @@
|
|
|
|
+:title: Chef Usage
|
|
|
|
+:description: Installation and using Docker via Chef
|
|
|
|
+:keywords: chef, installation, usage, docker, documentation
|
|
|
|
+
|
|
|
|
+.. _install_using_chef:
|
|
|
|
+
|
|
|
|
+Using Chef
|
|
|
|
+=============
|
|
|
|
+
|
|
|
|
+.. 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
|
|
|
|
+`Chef <http://www.getchef.com/>`_. This cookbook supports a variety of
|
|
|
|
+operating systems.
|
|
|
|
+
|
|
|
|
+Installation
|
|
|
|
+------------
|
|
|
|
+
|
|
|
|
+The cookbook is available on the `Chef Community Site
|
|
|
|
+<community.opscode.com/cookbooks/docker>`_ and can be installed
|
|
|
|
+using your favorite cookbook dependency manager.
|
|
|
|
+
|
|
|
|
+The source can be found on `GitHub
|
|
|
|
+<https://github.com/bflad/chef-docker>`_.
|
|
|
|
+
|
|
|
|
+Usage
|
|
|
|
+-----
|
|
|
|
+
|
|
|
|
+The cookbook provides recipes for installing Docker, configuring init
|
|
|
|
+for Docker, and resources for managing images and containers.
|
|
|
|
+It supports almost all Docker functionality.
|
|
|
|
+
|
|
|
|
+Installation
|
|
|
|
+~~~~~~~~~~~~
|
|
|
|
+
|
|
|
|
+.. code-block:: ruby
|
|
|
|
+
|
|
|
|
+ include_recipe 'docker'
|
|
|
|
+
|
|
|
|
+Images
|
|
|
|
+~~~~~~
|
|
|
|
+
|
|
|
|
+The next step is to pull a Docker image. For this, we have a resource:
|
|
|
|
+
|
|
|
|
+.. code-block:: ruby
|
|
|
|
+
|
|
|
|
+ docker_image 'samalba/docker-registry'
|
|
|
|
+
|
|
|
|
+This is equivalent to running:
|
|
|
|
+
|
|
|
|
+.. code-block:: bash
|
|
|
|
+
|
|
|
|
+ docker pull samalba/docker-registry
|
|
|
|
+
|
|
|
|
+There are attributes available to control how long the cookbook
|
|
|
|
+will allow for downloading (5 minute default).
|
|
|
|
+
|
|
|
|
+To remove images you no longer need:
|
|
|
|
+
|
|
|
|
+.. code-block:: ruby
|
|
|
|
+
|
|
|
|
+ docker_image 'samalba/docker-registry' do
|
|
|
|
+ action :remove
|
|
|
|
+ end
|
|
|
|
+
|
|
|
|
+Containers
|
|
|
|
+~~~~~~~~~~
|
|
|
|
+
|
|
|
|
+Now you have an image where you can run commands within a container
|
|
|
|
+managed by Docker.
|
|
|
|
+
|
|
|
|
+.. code-block:: ruby
|
|
|
|
+
|
|
|
|
+ docker_container 'samalba/docker-registry' do
|
|
|
|
+ detach true
|
|
|
|
+ port '5000:5000'
|
|
|
|
+ env 'SETTINGS_FLAVOR=local'
|
|
|
|
+ volume '/mnt/docker:/docker-storage'
|
|
|
|
+ end
|
|
|
|
+
|
|
|
|
+This is equivalent to running the following command, but under upstart:
|
|
|
|
+
|
|
|
|
+.. code-block:: bash
|
|
|
|
+
|
|
|
|
+ docker run --detach=true --publish='5000:5000' --env='SETTINGS_FLAVOR=local' --volume='/mnt/docker:/docker-storage' samalba/docker-registry
|
|
|
|
+
|
|
|
|
+The resources will accept a single string or an array of values
|
|
|
|
+for any docker flags that allow multiple values.
|