Installs/Configures Docker. Please see COMPATIBILITY.md for more information about Docker versions that are tested and supported by cookbook versions along with LWRP features.
This cookbook was inspired by @thoward's docker-cookbook: https://github.com/thoward/docker-cookbook
- Ubuntu 12.04
- Ubuntu 12.10
- Ubuntu 13.04
Third-Party Cookbooks
These attributes are under the node['docker']
namespace.
Attribute | Description | Type | Default |
---|---|---|---|
arch | Architecture for docker binary (note: Docker only currently supports x86_64) | String | auto-detected (see attributes/default.rb) |
http_proxy | HTTP_PROXY environment variable | String | nil |
install_dir | Installation directory for docker binary | String | auto-detected (see attributes/default.rb) |
install_type | Installation type for docker ("binary", "package" or "source") | String | "package" |
bind_uri | The location that docker should bind to. | String | tcp://0.0.0.0:4243 (docker default) |
options | Additional options to pass to docker. These could be flags like "-api-enable-cors". | String | nil |
These attributes are under the node['docker']['binary']
namespace.
Attribute | Description | Type | Default |
---|---|---|---|
version | Version of docker binary | String | latest |
url | URL for downloading docker binary | String | auto-detected (see attributes/default.rb) |
These attributes are under the node['docker']['package']
namespace.
Attribute | Description | Type | Default |
---|---|---|---|
distribution | Distribution for docker packages | String | auto-detected (see attributes/default.rb) |
repo_url | Repository URL for docker packages | String | auto-detected (see attributes/default.rb) |
These attributes are under the node['docker']['source']
namespace.
Attribute | Description | Type | Default |
---|---|---|---|
ref | Repository reference for docker source | String | "master" |
url | Repository URL for docker source | String | "https://github.com/dotcloud/docker.git" |
recipe[docker]
Installs/Configures Dockerrecipe[docker::aufs]
Installs/Loads AUFS Linux modulerecipe[docker::binary]
Installs Docker binaryrecipe[docker::package]
Installs Docker via packagerecipe[docker::source]
Installs Docker via sourcerecipe[docker::upstart]
Installs/Starts Docker via Upstart
Run a container:
docker_container "busybox" do
command "sleep 9999"
detach true
end
Stop a running container:
docker_container "busybox" do
command "sleep 9999"
action :stop
end
Start a stopped container:
docker_container "busybox" do
command "sleep 9999"
action :start
end
Restart a container:
docker_container "busybox" do
command "sleep 9999"
action :restart
end
Remove a container:
docker_container "busybox" do
command "sleep 9999"
action :remove
end
Build image from Dockerfile:
docker_image "myImage" do
tag "myTag"
dockerfile myImageDockerfile
action :build
end
Build image from remote repository:
docker_image "myImage" do
image_url "example.com/foo/myImage"
tag "myTag"
action :build
end
Pull latest image:
docker_image "busybox"
Pull tagged image:
docker_image "bflad/test" do
tag "not-latest"
end
Import image from URL:
docker_image "test" do
image_url "https://example.com/testimage.tgz"
action :import
end
Import image from URL with repository/tag information:
docker_image "test" do
repository "bflad/test"
tag "not-latest"
action :import
end
Remove image:
docker_image "busybox" do
action :remove
end
- Add
recipe[docker]
to your node's run list
Here's how you can quickly get testing or developing against the cookbook thanks to Vagrant and Berkshelf.
vagrant plugin install vagrant-berkshelf
vagrant plugin install vagrant-omnibus
git clone git://github.com/bflad/chef-docker.git
cd chef-docker
vagrant up BOX # BOX being ubuntu1204, ubuntu1210, or ubuntu1304
You can then SSH into the running VM using the vagrant ssh BOX
command.
The VM can easily be stopped and deleted with the vagrant destroy
command. Please see the official Vagrant documentation for a more in depth explanation of available commands.
Please see documentation in: TESTING.md
Please use standard Github issues/pull requests and if possible, in combination with testing on the Vagrant boxes or Test Kitchen suite.
- Brian Flad ([email protected])