: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 `_. This cookbook supports a variety of operating systems. Installation ------------ The cookbook is available on the `Chef Community Site `_ and can be installed using your favorite cookbook dependency manager. The source can be found on `GitHub `_. 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.