github.com/rentongzhang/docker@v1.8.2-rc1/docs/articles/chef.md (about) 1 <!--[metadata]> 2 +++ 3 title = "Using Chef" 4 description = "Installation and using Docker via Chef" 5 keywords = ["chef, installation, usage, docker, documentation"] 6 [menu.main] 7 parent = "smn_third_party" 8 +++ 9 <![end-metadata]--> 10 11 # Using Chef 12 13 > **Note**: 14 > Please note this is a community contributed installation path. The only 15 > `official` installation is using the 16 > [*Ubuntu*](/installation/ubuntulinux) installation 17 > path. This version may sometimes be out of date. 18 19 ## Requirements 20 21 To use this guide you'll need a working installation of 22 [Chef](http://www.getchef.com/). This cookbook supports a variety of 23 operating systems. 24 25 ## Installation 26 27 The cookbook is available on the [Chef Community 28 Site](http://community.opscode.com/cookbooks/docker) and can be 29 installed using your favorite cookbook dependency manager. 30 31 The source can be found on 32 [GitHub](https://github.com/bflad/chef-docker). 33 34 ## Usage 35 36 The cookbook provides recipes for installing Docker, configuring init 37 for Docker, and resources for managing images and containers. It 38 supports almost all Docker functionality. 39 40 ### Installation 41 42 include_recipe 'docker' 43 44 ### Images 45 46 The next step is to pull a Docker image. For this, we have a resource: 47 48 docker_image 'samalba/docker-registry' 49 50 This is equivalent to running: 51 52 $ docker pull samalba/docker-registry 53 54 There are attributes available to control how long the cookbook will 55 allow for downloading (5 minute default). 56 57 To remove images you no longer need: 58 59 docker_image 'samalba/docker-registry' do 60 action :remove 61 end 62 63 ### Containers 64 65 Now you have an image where you can run commands within a container 66 managed by Docker. 67 68 docker_container 'samalba/docker-registry' do 69 detach true 70 port '5000:5000' 71 env 'SETTINGS_FLAVOR=local' 72 volume '/mnt/docker:/docker-storage' 73 end 74 75 This is equivalent to running the following command, but under upstart: 76 77 $ docker run --detach=true --publish='5000:5000' --env='SETTINGS_FLAVOR=local' --volume='/mnt/docker:/docker-storage' samalba/docker-registry 78 79 The resources will accept a single string or an array of values for any 80 Docker flags that allow multiple values.