From a7b2c4804b2d98c2b5622db40d3d70b88529d7fe Mon Sep 17 00:00:00 2001 From: James Turnbull Date: Thu, 22 May 2014 07:05:19 +1000 Subject: [PATCH] Adding User Guide * Added User Guide section outlines. * Added User Guide to menu. * Moved HTTPS example to articles. * Replaced Hello World example with User Guide. * Moved use cases out of examples. * Updated Introduction to add User Guide. * Redirected migrated /use and /articles links. * Added Docker.io section * Added Dockerized section * Added Using Docker section * Added Docker Images section * Added Docker Links section * Added Docker Volumes section Docker-DCO-1.1-Signed-off-by: James Turnbull (github: jamtur01) --- docs/mkdocs.yml | 80 ++-- docs/s3_website.json | 9 +- docs/sources/articles.md | 11 +- .../ambassador_pattern_linking.md | 0 docs/sources/{use => articles}/basics.md | 9 +- .../cfengine_process_management.md | 0 docs/sources/{use => articles}/chef.md | 0 .../{use => articles}/host_integration.md | 0 docs/sources/{examples => articles}/https.md | 0 docs/sources/{use => articles}/networking.md | 18 +- docs/sources/{use => articles}/puppet.md | 0 docs/sources/articles/security.md | 2 +- .../using_supervisord.md | 8 +- docs/sources/docker-io/builds.md | 78 ++-- docs/sources/docker-io/index.md | 8 + docs/sources/examples.md | 30 +- docs/sources/examples/apt-cacher-ng.md | 8 +- docs/sources/examples/couchdb_data_volumes.md | 8 +- docs/sources/examples/example_header.inc | 8 - docs/sources/examples/hello_world.md | 162 ------- docs/sources/examples/mongodb.md | 20 +- docs/sources/examples/nodejs_web_app.md | 13 +- docs/sources/examples/postgresql_service.md | 24 +- docs/sources/examples/python_web_app.md | 127 ------ .../sources/examples/running_redis_service.md | 12 +- docs/sources/examples/running_riak_service.md | 19 +- docs/sources/examples/running_ssh_service.md | 27 +- docs/sources/faq.md | 14 +- docs/sources/index.md | 29 +- docs/sources/installation/amazon.md | 5 +- docs/sources/installation/binaries.md | 25 +- docs/sources/installation/centos.md | 41 +- docs/sources/installation/debian.md | 26 +- docs/sources/installation/fedora.md | 6 +- docs/sources/installation/mac.md | 34 +- docs/sources/installation/openSUSE.md | 5 +- docs/sources/installation/rhel.md | 3 +- docs/sources/installation/softlayer.md | 6 +- docs/sources/installation/ubuntulinux.md | 6 +- .../introduction/understanding-docker.md | 11 +- .../introduction/working-with-docker.md | 292 ------------- .../reference/api/docker_remote_api_v1.10.md | 5 +- .../reference/api/docker_remote_api_v1.11.md | 5 +- .../reference/api/docker_remote_api_v1.6.md | 5 +- .../reference/api/docker_remote_api_v1.7.md | 5 +- .../reference/api/docker_remote_api_v1.8.md | 5 +- .../reference/api/docker_remote_api_v1.9.md | 5 +- docs/sources/reference/builder.md | 12 +- docs/sources/reference/commandline/cli.md | 33 +- docs/sources/reference/run.md | 24 +- docs/sources/terms/container.md | 23 +- docs/sources/terms/image.md | 4 +- docs/sources/terms/layer.md | 2 +- docs/sources/terms/registry.md | 10 +- docs/sources/terms/repository.md | 6 +- docs/sources/use.md | 13 - docs/sources/use/port_redirection.md | 127 ------ docs/sources/use/working_with_links_names.md | 139 ------ docs/sources/use/working_with_volumes.md | 171 -------- docs/sources/use/workingwithrepository.md | 251 ----------- docs/sources/userguide/dockerimages.md | 397 ++++++++++++++++++ docs/sources/userguide/dockerio.md | 73 ++++ docs/sources/userguide/dockerizing.md | 193 +++++++++ docs/sources/userguide/dockerlinks.md | 241 +++++++++++ docs/sources/userguide/dockerrepos.md | 176 ++++++++ docs/sources/userguide/dockervolumes.md | 142 +++++++ docs/sources/userguide/index.md | 98 +++++ docs/sources/userguide/login-web.png | Bin 0 -> 31788 bytes docs/sources/userguide/register-confirm.png | Bin 0 -> 65441 bytes docs/sources/userguide/register-web.png | Bin 0 -> 72463 bytes docs/sources/userguide/search.png | Bin 0 -> 101216 bytes docs/sources/userguide/usingdocker.md | 316 ++++++++++++++ docs/sources/userguide/webapp1.png | Bin 0 -> 51848 bytes 73 files changed, 1958 insertions(+), 1707 deletions(-) rename docs/sources/{use => articles}/ambassador_pattern_linking.md (100%) rename docs/sources/{use => articles}/basics.md (95%) rename docs/sources/{examples => articles}/cfengine_process_management.md (100%) rename docs/sources/{use => articles}/chef.md (100%) rename docs/sources/{use => articles}/host_integration.md (100%) rename docs/sources/{examples => articles}/https.md (100%) rename docs/sources/{use => articles}/networking.md (97%) rename docs/sources/{use => articles}/puppet.md (100%) rename docs/sources/{examples => articles}/using_supervisord.md (93%) create mode 100644 docs/sources/docker-io/index.md delete mode 100644 docs/sources/examples/example_header.inc delete mode 100644 docs/sources/examples/hello_world.md delete mode 100644 docs/sources/examples/python_web_app.md delete mode 100644 docs/sources/introduction/working-with-docker.md delete mode 100644 docs/sources/use.md delete mode 100644 docs/sources/use/port_redirection.md delete mode 100644 docs/sources/use/working_with_links_names.md delete mode 100644 docs/sources/use/working_with_volumes.md delete mode 100644 docs/sources/use/workingwithrepository.md create mode 100644 docs/sources/userguide/dockerimages.md create mode 100644 docs/sources/userguide/dockerio.md create mode 100644 docs/sources/userguide/dockerizing.md create mode 100644 docs/sources/userguide/dockerlinks.md create mode 100644 docs/sources/userguide/dockerrepos.md create mode 100644 docs/sources/userguide/dockervolumes.md create mode 100644 docs/sources/userguide/index.md create mode 100644 docs/sources/userguide/login-web.png create mode 100644 docs/sources/userguide/register-confirm.png create mode 100644 docs/sources/userguide/register-web.png create mode 100644 docs/sources/userguide/search.png create mode 100644 docs/sources/userguide/usingdocker.md create mode 100644 docs/sources/userguide/webapp1.png diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 1e6b8b16d8..2835cd9dde 100755 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -28,7 +28,6 @@ pages: - ['index.md', 'About', 'Docker'] - ['introduction/index.md', '**HIDDEN**'] - ['introduction/understanding-docker.md', 'About', 'Understanding Docker'] -- ['introduction/working-with-docker.md', 'About', 'Working with Docker'] # Installation: - ['installation/index.md', '**HIDDEN**'] @@ -50,44 +49,47 @@ pages: - ['installation/windows.md', 'Installation', 'Microsoft Windows'] - ['installation/binaries.md', 'Installation', 'Binaries'] -# Examples: -- ['use/index.md', '**HIDDEN**'] -- ['use/basics.md', 'Examples', 'First steps with Docker'] -- ['examples/index.md', '**HIDDEN**'] -- ['examples/hello_world.md', 'Examples', 'Hello World'] -- ['examples/nodejs_web_app.md', 'Examples', 'Node.js web application'] -- ['examples/python_web_app.md', 'Examples', 'Python web application'] -- ['examples/mongodb.md', 'Examples', 'Dockerizing MongoDB'] -- ['examples/running_redis_service.md', 'Examples', 'Redis service'] -- ['examples/postgresql_service.md', 'Examples', 'PostgreSQL service'] -- ['examples/running_riak_service.md', 'Examples', 'Running a Riak service'] -- ['examples/running_ssh_service.md', 'Examples', 'Running an SSH service'] -- ['examples/couchdb_data_volumes.md', 'Examples', 'CouchDB service'] -- ['examples/apt-cacher-ng.md', 'Examples', 'Apt-Cacher-ng service'] -- ['examples/https.md', 'Examples', 'Running Docker with HTTPS'] -- ['examples/using_supervisord.md', 'Examples', 'Using Supervisor'] -- ['examples/cfengine_process_management.md', 'Examples', 'Process management with CFEngine'] -- ['use/working_with_links_names.md', 'Examples', 'Linking containers together'] -- ['use/working_with_volumes.md', 'Examples', 'Sharing Directories using volumes'] -- ['use/puppet.md', 'Examples', 'Using Puppet'] -- ['use/chef.md', 'Examples', 'Using Chef'] -- ['use/workingwithrepository.md', 'Examples', 'Working with a Docker Repository'] -- ['use/port_redirection.md', 'Examples', 'Redirect ports'] -- ['use/ambassador_pattern_linking.md', 'Examples', 'Cross-Host linking using Ambassador Containers'] -- ['use/host_integration.md', 'Examples', 'Automatically starting Containers'] - -#- ['user-guide/index.md', '**HIDDEN**'] -# - ['user-guide/writing-your-docs.md', 'User Guide', 'Writing your docs'] -# - ['user-guide/styling-your-docs.md', 'User Guide', 'Styling your docs'] -# - ['user-guide/configuration.md', 'User Guide', 'Configuration'] -# ./faq.md +# User Guide: +- ['userguide/index.md', 'User Guide', 'The Docker User Guide' ] +- ['userguide/dockerio.md', 'User Guide', 'Getting Started with Docker.io' ] +- ['userguide/dockerizing.md', 'User Guide', 'Dockerizing Applications' ] +- ['userguide/usingdocker.md', 'User Guide', 'Working with Containers' ] +- ['userguide/dockerimages.md', 'User Guide', 'Working with Docker Images' ] +- ['userguide/dockerlinks.md', 'User Guide', 'Linking containers together' ] +- ['userguide/dockervolumes.md', 'User Guide', 'Managing data in containers' ] +- ['userguide/dockerrepos.md', 'User Guide', 'Working with Docker.io' ] # Docker.io docs: -- ['docker-io/index.md', '**HIDDEN**'] -# - ['index/home.md', 'Docker Index', 'Help'] +- ['docker-io/index.md', 'Docker.io', 'Docker.io' ] - ['docker-io/accounts.md', 'Docker.io', 'Accounts'] - ['docker-io/repos.md', 'Docker.io', 'Repositories'] -- ['docker-io/builds.md', 'Docker.io', 'Trusted Builds'] +- ['docker-io/builds.md', 'Docker.io', 'Automated Builds'] + +# Examples: +- ['examples/index.md', '**HIDDEN**'] +- ['examples/nodejs_web_app.md', 'Examples', 'Dockerizing a Node.js web application'] +- ['examples/mongodb.md', 'Examples', 'Dockerizing MongoDB'] +- ['examples/running_redis_service.md', 'Examples', 'Dockerizing a Redis service'] +- ['examples/postgresql_service.md', 'Examples', 'Dockerizing a PostgreSQL service'] +- ['examples/running_riak_service.md', 'Examples', 'Dockerizing a Riak service'] +- ['examples/running_ssh_service.md', 'Examples', 'Dockerizing an SSH service'] +- ['examples/couchdb_data_volumes.md', 'Examples', 'Dockerizing a CouchDB service'] +- ['examples/apt-cacher-ng.md', 'Examples', 'Dockerizing an Apt-Cacher-ng service'] + +# Articles +- ['articles/index.md', '**HIDDEN**'] +- ['articles/basics.md', 'Articles', 'Docker basics'] +- ['articles/networking.md', 'Articles', 'Advanced networking'] +- ['articles/security.md', 'Articles', 'Security'] +- ['articles/https.md', 'Articles', 'Running Docker with HTTPS'] +- ['articles/host_integration.md', 'Articles', 'Automatically starting Containers'] +- ['articles/using_supervisord.md', 'Articles', 'Using Supervisor'] +- ['articles/cfengine_process_management.md', 'Articles', 'Process management with CFEngine'] +- ['articles/puppet.md', 'Articles', 'Using Puppet'] +- ['articles/chef.md', 'Articles', 'Using Chef'] +- ['articles/ambassador_pattern_linking.md', 'Articles', 'Cross-Host linking using Ambassador Containers'] +- ['articles/runmetrics.md', 'Articles', 'Runtime metrics'] +- ['articles/baseimages.md', 'Articles', 'Creating a Base Image'] # Reference - ['reference/index.md', '**HIDDEN**'] @@ -96,11 +98,6 @@ pages: - ['reference/builder.md', 'Reference', 'Dockerfile'] - ['faq.md', 'Reference', 'FAQ'] - ['reference/run.md', 'Reference', 'Run Reference'] -- ['articles/index.md', '**HIDDEN**'] -- ['articles/runmetrics.md', 'Reference', 'Runtime metrics'] -- ['articles/security.md', 'Reference', 'Security'] -- ['articles/baseimages.md', 'Reference', 'Creating a Base Image'] -- ['use/networking.md', 'Reference', 'Advanced networking'] - ['reference/api/index.md', '**HIDDEN**'] - ['reference/api/docker-io_api.md', 'Reference', 'Docker.io API'] - ['reference/api/registry_api.md', 'Reference', 'Docker Registry API'] @@ -134,9 +131,6 @@ pages: - ['terms/filesystem.md', '**HIDDEN**'] - ['terms/image.md', '**HIDDEN**'] -# TODO: our theme adds a dropdown even for sections that have no subsections. - #- ['faq.md', 'FAQ'] - # Contribute: - ['contributing/index.md', '**HIDDEN**'] - ['contributing/contributing.md', 'Contribute', 'Contributing'] diff --git a/docs/s3_website.json b/docs/s3_website.json index 2d158cf9de..35c86f462d 100644 --- a/docs/s3_website.json +++ b/docs/s3_website.json @@ -11,7 +11,14 @@ { "Condition": { "KeyPrefixEquals": "en/v0.6.3/" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "" } }, { "Condition": { "KeyPrefixEquals": "jsearch/index.html" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "jsearch/" } }, { "Condition": { "KeyPrefixEquals": "index/" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "docker-io/" } }, - { "Condition": { "KeyPrefixEquals": "reference/api/index_api/" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "reference/api/docker-io_api/" } } + { "Condition": { "KeyPrefixEquals": "reference/api/index_api/" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "reference/api/docker-io_api/" } }, + { "Condition": { "KeyPrefixEquals": "examples/hello_world/" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "userguide/dockerizing/" } }, + { "Condition": { "KeyPrefixEquals": "examples/python_web_app/" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "userguide/dockerizing/" } }, + { "Condition": { "KeyPrefixEquals": "use/working_with_volumes/" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "userguide/dockervolumes/" } }, + { "Condition": { "KeyPrefixEquals": "use/working_with_links_names/" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "userguide/dockerlinks/" } }, + { "Condition": { "KeyPrefixEquals": "use/workingwithrepository/" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "userguide/dockerrepos/" } }, + { "Condition": { "KeyPrefixEquals": "use/port_redirection" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "userguide/dockerlinks/" } }, + { "Condition": { "KeyPrefixEquals": "use/" }, "Redirect": { "HostName": "$BUCKET", "ReplaceKeyPrefixWith": "examples/" } }, ] } diff --git a/docs/sources/articles.md b/docs/sources/articles.md index 54c067d0cc..51335c6afd 100644 --- a/docs/sources/articles.md +++ b/docs/sources/articles.md @@ -1,8 +1,13 @@ # Articles -## Contents: - + - [Docker Basics](basics/) - [Docker Security](security/) + - [Running the Docker daemon with HTTPS](https/) + - [Configure Networking](networking/) + - [Using Supervisor with Docker](using_supervisord/) + - [Process Management with CFEngine](cfengine_process_management/) + - [Using Puppet](puppet/) - [Create a Base Image](baseimages/) - [Runtime Metrics](runmetrics/) - + - [Automatically Start Containers](host_integration/) + - [Link via an Ambassador Container](ambassador_pattern_linking/) diff --git a/docs/sources/use/ambassador_pattern_linking.md b/docs/sources/articles/ambassador_pattern_linking.md similarity index 100% rename from docs/sources/use/ambassador_pattern_linking.md rename to docs/sources/articles/ambassador_pattern_linking.md diff --git a/docs/sources/use/basics.md b/docs/sources/articles/basics.md similarity index 95% rename from docs/sources/use/basics.md rename to docs/sources/articles/basics.md index 1b8c0a7b1d..1f21e3454b 100644 --- a/docs/sources/use/basics.md +++ b/docs/sources/articles/basics.md @@ -26,7 +26,7 @@ for installation instructions. $ sudo docker pull ubuntu This will find the `ubuntu` image by name on -[*Docker.io*](../workingwithrepository/#find-public-images-on-dockerio) +[*Docker.io*](/userguide/dockerrepos/#find-public-images-on-dockerio) and download it from [Docker.io](https://index.docker.io) to a local image cache. @@ -173,6 +173,7 @@ will be stored (as a diff). See which images you already have using the You now have an image state from which you can create new instances. -Read more about [*Share Images via Repositories*]( -../workingwithrepository/#working-with-the-repository) or -continue to the complete [*Command Line*](/reference/commandline/cli/#cli) +Read more about [*Share Images via +Repositories*](/userguide/dockerrepos/#working-with-the-repository) or +continue to the complete [*Command +Line*](/reference/commandline/cli/#cli) diff --git a/docs/sources/examples/cfengine_process_management.md b/docs/sources/articles/cfengine_process_management.md similarity index 100% rename from docs/sources/examples/cfengine_process_management.md rename to docs/sources/articles/cfengine_process_management.md diff --git a/docs/sources/use/chef.md b/docs/sources/articles/chef.md similarity index 100% rename from docs/sources/use/chef.md rename to docs/sources/articles/chef.md diff --git a/docs/sources/use/host_integration.md b/docs/sources/articles/host_integration.md similarity index 100% rename from docs/sources/use/host_integration.md rename to docs/sources/articles/host_integration.md diff --git a/docs/sources/examples/https.md b/docs/sources/articles/https.md similarity index 100% rename from docs/sources/examples/https.md rename to docs/sources/articles/https.md diff --git a/docs/sources/use/networking.md b/docs/sources/articles/networking.md similarity index 97% rename from docs/sources/use/networking.md rename to docs/sources/articles/networking.md index 5b76233eff..aedc5aaa35 100644 --- a/docs/sources/use/networking.md +++ b/docs/sources/articles/networking.md @@ -14,6 +14,13 @@ Docker made the choice `172.17.42.1/16` when I started it a few minutes ago, for example — a 16-bit netmask providing 65,534 addresses for the host machine and its containers. +> **Note:** +> This document discusses advanced networking configuration +> and options for Docker. In most cases you won't need this information. +> If you're looking to get started with a simpler explanation of Docker +> networking and an introduction to the concept of container linking see +> the [Docker User Guide](/userguide/dockerlinks/). + But `docker0` is no ordinary interface. It is a virtual *Ethernet bridge* that automatically forwards packets between any other network interfaces that are attached to it. This lets containers communicate @@ -29,7 +36,7 @@ container. The remaining sections of this document explain all of the ways that you can use Docker options and — in advanced cases — raw Linux networking -commands to tweak, supplement, or entirely replace Docker’s default +commands to tweak, supplement, or entirely replace Docker's default networking configuration. ## Quick Guide to the Options @@ -53,9 +60,6 @@ server when it starts up, and cannot be changed once it is running: it tells the Docker server over what channels it should be willing to receive commands like “run container” and “stop container.” - To learn about the option, - read [Bind Docker to another host/port or a Unix socket](../basics/#bind-docker-to-another-hostport-or-a-unix-socket) - over in the Basics document. * `--icc=true|false` — see [Communication between containers](#between-containers) @@ -219,7 +223,7 @@ services. If the Docker daemon is running with both `--icc=false` and `ACCEPT` rules so that the new container can connect to the ports exposed by the other container — the ports that it mentioned in the `EXPOSE` lines of its `Dockerfile`. Docker has more documentation on -this subject — see the [Link Containers](working_with_links_names.md) +this subject — see the [linking Docker containers](/userguide/dockerlinks) page for further details. > **Note**: @@ -280,7 +284,7 @@ machine that the Docker server creates when it starts: But if you want containers to accept incoming connections, you will need to provide special options when invoking `docker run`. These options -are covered in more detail on the [Redirect Ports](port_redirection.md) +are covered in more detail in the [Docker User Guide](/userguide/dockerlinks) page. There are two approaches. First, you can supply `-P` or `--publish-all=true|false` to `docker run` @@ -329,7 +333,7 @@ option `--ip=IP_ADDRESS`. Remember to restart your Docker server after editing this setting. Again, this topic is covered without all of these low-level networking -details in the [Redirect Ports](port_redirection.md) document if you +details in the [Docker User Guide](/userguide/dockerlinks/) document if you would like to use that as your port redirection reference instead. ## Customizing docker0 diff --git a/docs/sources/use/puppet.md b/docs/sources/articles/puppet.md similarity index 100% rename from docs/sources/use/puppet.md rename to docs/sources/articles/puppet.md diff --git a/docs/sources/articles/security.md b/docs/sources/articles/security.md index 69284db836..eef2577304 100644 --- a/docs/sources/articles/security.md +++ b/docs/sources/articles/security.md @@ -38,7 +38,7 @@ of another container. Of course, if the host system is setup accordingly, containers can interact with each other through their respective network interfaces — just like they can interact with external hosts. When you specify public ports for your containers or use -[*links*](/use/working_with_links_names/#working-with-links-names) +[*links*](/userguide/dockerlinks/#working-with-links-names) then IP traffic is allowed between containers. They can ping each other, send/receive UDP packets, and establish TCP connections, but that can be restricted if necessary. From a network architecture point of view, all diff --git a/docs/sources/examples/using_supervisord.md b/docs/sources/articles/using_supervisord.md similarity index 93% rename from docs/sources/examples/using_supervisord.md rename to docs/sources/articles/using_supervisord.md index 0f10945325..fd7c07cabf 100644 --- a/docs/sources/examples/using_supervisord.md +++ b/docs/sources/articles/using_supervisord.md @@ -5,10 +5,6 @@ page_keywords: docker, supervisor, process management # Using Supervisor with Docker > **Note**: -> -> - This example assumes you have Docker running in daemon mode. For -> more information please see [*Check your Docker -> install*](../hello_world/#running-examples). > - **If you don't like sudo** then see [*Giving non-root > access*](/installation/binaries/#dockergroup) @@ -16,8 +12,8 @@ Traditionally a Docker container runs a single process when it is launched, for example an Apache daemon or a SSH server daemon. Often though you want to run more than one process in a container. There are a number of ways you can achieve this ranging from using a simple Bash -script as the value of your container's `CMD` -instruction to installing a process management tool. +script as the value of your container's `CMD` instruction to installing +a process management tool. In this example we're going to make use of the process management tool, [Supervisor](http://supervisord.org/), to manage multiple processes in diff --git a/docs/sources/docker-io/builds.md b/docs/sources/docker-io/builds.md index 1f6e002208..dd18907cf6 100644 --- a/docs/sources/docker-io/builds.md +++ b/docs/sources/docker-io/builds.md @@ -1,33 +1,32 @@ -page_title: Trusted Builds on Docker.io -page_description: Docker.io Trusted Builds -page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker.io, docs, documentation, trusted, builds, trusted builds +page_title: Automated Builds on Docker.io +page_description: Docker.io Automated Builds +page_keywords: Docker, docker, registry, accounts, plans, Dockerfile, Docker.io, docs, documentation, trusted, builds, trusted builds, automated builds +# Automated Builds on Docker.io -# Trusted Builds on Docker.io +## Automated Builds -## Trusted Builds - -*Trusted Builds* is a special feature allowing you to specify a source +*Automated Builds* is a special feature allowing you to specify a source repository with a `Dockerfile` to be built by the [Docker.io](https://index.docker.io) build clusters. The system will clone your repository and build the `Dockerfile` using the repository as the context. The resulting image will then be uploaded to the registry -and marked as a *Trusted Build*. +and marked as an *Automated Build*. -Trusted Builds have a number of advantages. For example, users of *your* Trusted -Build can be certain that the resulting image was built exactly how it claims -to be. +Automated Builds have a number of advantages. For example, users of +*your* Automated Build can be certain that the resulting image was built +exactly how it claims to be. Furthermore, the `Dockerfile` will be available to anyone browsing your repository -on the registry. Another advantage of the Trusted Builds feature is the automated +on the registry. Another advantage of the Automated Builds feature is the automated builds. This makes sure that your repository is always up to date. -Trusted builds are supported for both public and private repositories on -both [GitHub](http://github.com) and +Automated Builds are supported for both public and private repositories +on both [GitHub](http://github.com) and [BitBucket](https://bitbucket.org/). -### Setting up Trusted Builds with GitHub +### Setting up Automated Builds with GitHub -In order to setup a Trusted Build, you need to first link your [Docker.io]( +In order to setup an Automated Build, you need to first link your [Docker.io]( https://index.docker.io) account with a GitHub one. This will allow the registry to see your repositories. @@ -35,7 +34,7 @@ to see your repositories. > https://index.docker.io) needs to setup a GitHub service hook. Although nothing > else is done with your account, this is how GitHub manages permissions, sorry! -Click on the [Trusted Builds tab](https://index.docker.io/builds/) to +Click on the [Automated Builds tab](https://index.docker.io/builds/) to get started and then select [+ Add New](https://index.docker.io/builds/add/). @@ -45,9 +44,9 @@ service](https://index.docker.io/associate/github/). Then follow the instructions to authorize and link your GitHub account to Docker.io. -#### Creating a Trusted Build +#### Creating an Automated Build -You can [create a Trusted Build](https://index.docker.io/builds/github/select/) +You can [create an Automated Build](https://index.docker.io/builds/github/select/) from any of your public or private GitHub repositories with a `Dockerfile`. #### GitHub organizations @@ -59,7 +58,7 @@ organization on GitHub. #### GitHub service hooks You can follow the below steps to configure the GitHub service hooks for your -Trusted Build: +Automated Build: @@ -84,13 +83,13 @@ Trusted Build:
-### Setting up Trusted Builds with BitBucket +### Setting up Automated Builds with BitBucket -In order to setup a Trusted Build, you need to first link your +In order to setup an Automated Build, you need to first link your [Docker.io]( https://index.docker.io) account with a BitBucket one. This will allow the registry to see your repositories. -Click on the [Trusted Builds tab](https://index.docker.io/builds/) to +Click on the [Automated Builds tab](https://index.docker.io/builds/) to get started and then select [+ Add New](https://index.docker.io/builds/add/). @@ -100,14 +99,14 @@ service](https://index.docker.io/associate/bitbucket/). Then follow the instructions to authorize and link your BitBucket account to Docker.io. -#### Creating a Trusted Build +#### Creating an Automated Build You can [create a Trusted Build](https://index.docker.io/builds/bitbucket/select/) from any of your public or private BitBucket repositories with a `Dockerfile`. -### The Dockerfile and Trusted Builds +### The Dockerfile and Automated Builds During the build process, we copy the contents of your `Dockerfile`. We also add it to the [Docker.io](https://index.docker.io) for the Docker community @@ -120,20 +119,19 @@ repository's full description. > **Warning:** > If you change the full description after a build, it will be -> rewritten the next time the Trusted Build has been built. To make changes, +> rewritten the next time the Automated Build has been built. To make changes, > modify the README.md from the Git repository. We will look for a README.md > in the same directory as your `Dockerfile`. ### Build triggers -If you need another way to trigger your Trusted Builds outside of GitHub +If you need another way to trigger your Automated Builds outside of GitHub or BitBucket, you can setup a build trigger. When you turn on the build -trigger for a Trusted Build, it will give you a URL to which you can -send POST requests. This will trigger the Trusted Build process, which -is similar to GitHub web hooks. +trigger for an Automated Build, it will give you a URL to which you can +send POST requests. This will trigger the Automated Build process, which +is similar to GitHub webhooks. -Build Triggers are available under the Settings tab of each Trusted -Build. +Build Triggers are available under the Settings tab of each Automated Build. > **Note:** > You can only trigger one build at a time and no more than one @@ -144,10 +142,10 @@ Build. ### Webhooks -Also available for Trusted Builds are Webhooks. Webhooks can be called +Also available for Automated Builds are Webhooks. Webhooks can be called after a successful repository push is made. -The web hook call will generate a HTTP POST with the following JSON +The webhook call will generate a HTTP POST with the following JSON payload: ``` @@ -181,7 +179,7 @@ payload: } ``` -Webhooks are available under the Settings tab of each Trusted +Webhooks are available under the Settings tab of each Automated Build. > **Note:** If you want to test your webhook out then we recommend using @@ -190,15 +188,15 @@ Build. ### Repository links -Repository links are a way to associate one Trusted Build with another. If one -gets updated, linking system also triggers a build for the other Trusted Build. -This makes it easy to keep your Trusted Builds up to date. +Repository links are a way to associate one Automated Build with another. If one +gets updated, linking system also triggers a build for the other Automated Build. +This makes it easy to keep your Automated Builds up to date. -To add a link, go to the settings page of a Trusted Build and click on +To add a link, go to the settings page of an Automated Build and click on *Repository Links*. Then enter the name of the repository that you want have linked. > **Warning:** > You can add more than one repository link, however, you should -> be very careful. Creating a two way relationship between Trusted Builds will +> be very careful. Creating a two way relationship between Automated Builds will > cause a never ending build loop. diff --git a/docs/sources/docker-io/index.md b/docs/sources/docker-io/index.md new file mode 100644 index 0000000000..dc83f0b281 --- /dev/null +++ b/docs/sources/docker-io/index.md @@ -0,0 +1,8 @@ +# Docker.io + +## Contents: + +- [Accounts](accounts/) +- [Repositories](repos/) +- [Automated Builds](builds/) + diff --git a/docs/sources/examples.md b/docs/sources/examples.md index f1d1567f52..9dcd67a643 100644 --- a/docs/sources/examples.md +++ b/docs/sources/examples.md @@ -1,25 +1,9 @@ - # Examples -## Introduction: - -Here are some examples of how to use Docker to create running processes, -starting from a very simple *Hello World* and progressing to more -substantial services like those which you might find in production. - -## Contents: - - - [Check your Docker install](hello_world/) - - [Hello World](hello_world/#hello-world) - - [Hello World Daemon](hello_world/#hello-world-daemon) - - [Node.js Web App](nodejs_web_app/) - - [Redis Service](running_redis_service/) - - [SSH Daemon Service](running_ssh_service/) - - [CouchDB Service](couchdb_data_volumes/) - - [PostgreSQL Service](postgresql_service/) - - [Building an Image with MongoDB](mongodb/) - - [Riak Service](running_riak_service/) - - [Using Supervisor with Docker](using_supervisord/) - - [Process Management with CFEngine](cfengine_process_management/) - - [Python Web App](python_web_app/) - + - [Dockerizing a Node.js Web App](nodejs_web_app/) + - [Dockerizing a Redis Service](running_redis_service/) + - [Dockerizing an SSH Daemon Service](running_ssh_service/) + - [Dockerizing a CouchDB Service](couchdb_data_volumes/) + - [Dockerizing a PostgreSQL Service](postgresql_service/) + - [Dockerizing MongoDB](mongodb/) + - [Dockerizing a Riak Service](running_riak_service/) diff --git a/docs/sources/examples/apt-cacher-ng.md b/docs/sources/examples/apt-cacher-ng.md index 0293ac5d0b..34e4a4bf02 100644 --- a/docs/sources/examples/apt-cacher-ng.md +++ b/docs/sources/examples/apt-cacher-ng.md @@ -1,14 +1,10 @@ -page_title: Running an apt-cacher-ng service +page_title: Dockerizing an apt-cacher-ng service page_description: Installing and running an apt-cacher-ng service page_keywords: docker, example, package installation, networking, debian, ubuntu -# Apt-Cacher-ng Service +# Dockerizing an Apt-Cacher-ng Service > **Note**: -> -> - This example assumes you have Docker running in daemon mode. For -> more information please see [*Check your Docker -> install*](../hello_world/#running-examples). > - **If you don't like sudo** then see [*Giving non-root > access*](/installation/binaries/#dockergroup). > - **If you're using OS X or docker via TCP** then you shouldn't use diff --git a/docs/sources/examples/couchdb_data_volumes.md b/docs/sources/examples/couchdb_data_volumes.md index ec1a0d9476..44043d6411 100644 --- a/docs/sources/examples/couchdb_data_volumes.md +++ b/docs/sources/examples/couchdb_data_volumes.md @@ -1,14 +1,10 @@ -page_title: Sharing data between 2 couchdb databases +page_title: Dockerizing a CouchDB Service page_description: Sharing data between 2 couchdb databases page_keywords: docker, example, package installation, networking, couchdb, data volumes -# CouchDB Service +# Dockerizing a CouchDB Service > **Note**: -> -> - This example assumes you have Docker running in daemon mode. For -> more information please see [*Check your Docker -> install*](../hello_world/#running-examples). > - **If you don't like sudo** then see [*Giving non-root > access*](/installation/binaries/#dockergroup) diff --git a/docs/sources/examples/example_header.inc b/docs/sources/examples/example_header.inc deleted file mode 100644 index 5841141e59..0000000000 --- a/docs/sources/examples/example_header.inc +++ /dev/null @@ -1,8 +0,0 @@ - -.. note:: - - * This example assumes you have Docker running in daemon mode. For - more information please see :ref:`running_examples`. - * **If you don't like sudo** then see :ref:`dockergroup` - * **If you're using OS X or docker via TCP** then you shouldn't use `sudo` - diff --git a/docs/sources/examples/hello_world.md b/docs/sources/examples/hello_world.md deleted file mode 100644 index 177857816c..0000000000 --- a/docs/sources/examples/hello_world.md +++ /dev/null @@ -1,162 +0,0 @@ -page_title: Hello world example -page_description: A simple hello world example with Docker -page_keywords: docker, example, hello world - -# Check your Docker installation - -This guide assumes you have a working installation of Docker. To check -your Docker install, run the following command: - - # Check that you have a working install - $ sudo docker info - -If you get `docker: command not found` or something -like `/var/lib/docker/repositories: permission denied` -you may have an incomplete Docker installation or insufficient -privileges to access docker on your machine. - -Please refer to [*Installation*](/installation/) -for installation instructions. - -## Hello World - -> **Note**: -> -> - This example assumes you have Docker running in daemon mode. For -> more information please see [*Check your Docker -> install*](#check-your-docker-installation). -> - **If you don't like sudo** then see [*Giving non-root -> access*](/installation/binaries/#dockergroup) - -This is the most basic example available for using Docker. - -Download the small base image named `busybox`: - - # Download a busybox image - $ sudo docker pull busybox - -The `busybox` image is a minimal Linux system. You can do the same with -any number of other images, such as `debian`, `ubuntu` or `centos`. The -images can be found and retrieved using the -[Docker.io](http://index.docker.io) registry. - - $ sudo docker run busybox /bin/echo hello world - -This command will run a simple `echo` command, that -will echo `hello world` back to the console over -standard out. - -**Explanation:** - -- **"sudo"** execute the following commands as user *root* -- **"docker run"** run a command in a new container -- **"busybox"** is the image we are running the command in. -- **"/bin/echo"** is the command we want to run in the container -- **"hello world"** is the input for the echo command - -**Video:** - -See the example in action - - - - - -## Hello World Daemon - -> **Note**: -> -> - This example assumes you have Docker running in daemon mode. For -> more information please see [*Check your Docker -> install*](#check-your-docker-installation). -> - **If you don't like sudo** then see [*Giving non-root -> access*](/installation/binaries/#dockergroup) - -And now for the most boring daemon ever written! - -We will use the Ubuntu image to run a simple hello world daemon that -will just print hello world to standard out every second. It will -continue to do this until we stop it. - -**Steps:** - - $ container_id=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done") - -We are going to run a simple hello world daemon in a new container made -from the `ubuntu` image. - - - **"sudo docker run -d "** run a command in a new container. We pass - "-d" so it runs as a daemon. - - **"ubuntu"** is the image we want to run the command inside of. - - **"/bin/sh -c"** is the command we want to run in the container - - **"while true; do echo hello world; sleep 1; done"** is the mini - script we want to run, that will just print hello world once a - second until we stop it. - - **$container_id** the output of the run command will return a - container id, we can use in future commands to see what is going on - with this process. - - - - $ sudo docker logs $container_id - -Check the logs make sure it is working correctly. - - - **"docker logs**" This will return the logs for a container - - **$container_id** The Id of the container we want the logs for. - - - - $ sudo docker attach --sig-proxy=false $container_id - -Attach to the container to see the results in real-time. - - - **"docker attach**" This will allow us to attach to a background - process to see what is going on. - - **"–sig-proxy=false"** Do not forward signals to the container; - allows us to exit the attachment using Control-C without stopping - the container. - - **$container_id** The Id of the container we want to attach to. - -Exit from the container attachment by pressing Control-C. - - $ sudo docker ps - -Check the process list to make sure it is running. - - - **"docker ps"** this shows all running process managed by docker - - - - $ sudo docker stop $container_id - -Stop the container, since we don't need it anymore. - - - **"docker stop"** This stops a container - - **$container_id** The Id of the container we want to stop. - - - - $ sudo docker ps - -Make sure it is really stopped. - -**Video:** - -See the example in action - - - - - -The next example in the series is a [*Node.js Web App*]( -../nodejs_web_app/#nodejs-web-app) example, or you could skip to any of the -other examples: - - - [*Node.js Web App*](../nodejs_web_app/#nodejs-web-app) - - [*Redis Service*](../running_redis_service/#running-redis-service) - - [*SSH Daemon Service*](../running_ssh_service/#running-ssh-service) - - [*CouchDB Service*](../couchdb_data_volumes/#running-couchdb-service) - - [*PostgreSQL Service*](../postgresql_service/#postgresql-service) - - [*Building an Image with MongoDB*](../mongodb/#mongodb-image) - - [*Python Web App*](../python_web_app/#python-web-app) diff --git a/docs/sources/examples/mongodb.md b/docs/sources/examples/mongodb.md index e397cb0e58..5b0b7d3e28 100644 --- a/docs/sources/examples/mongodb.md +++ b/docs/sources/examples/mongodb.md @@ -2,7 +2,7 @@ page_title: Dockerizing MongoDB page_description: Creating a Docker image with MongoDB pre-installed using a Dockerfile and sharing the image on Docker.io page_keywords: docker, dockerize, dockerizing, article, example, docker.io, platform, package, installation, networking, mongodb, containers, images, image, sharing, dockerfile, build, auto-building, virtualization, framework -# Dockerizing MongoDB +# Dockerizing MongoDB ## Introduction @@ -18,17 +18,10 @@ instances will bring several benefits, such as: - Ready to run and start working within milliseconds; - Based on globally accessible and shareable images. -> **Note:** -> -> This example assumes you have Docker running in daemon mode. To verify, -> try running `sudo docker info`. -> For more information, please see: [*Check your Docker installation*]( -> /examples/hello_world/#running-examples). - > **Note:** > > If you do **_not_** like `sudo`, you might want to check out: -> [*Giving non-root access*](installation/binaries/#giving-non-root-access). +> [*Giving non-root access*](/installation/binaries/#giving-non-root-access). ## Creating a Dockerfile for MongoDB @@ -101,8 +94,7 @@ Now save the file and let's build our image. > **Note:** > -> The full version of this `Dockerfile` can be found [here](/ -> /examples/mongodb/Dockerfile). +> The full version of this `Dockerfile` can be found [here](/examples/mongodb/Dockerfile). ## Building the MongoDB Docker image @@ -157,8 +149,6 @@ as daemon process(es). # Usage: mongo --port $ mongo --port 12345 -## Learn more - - - [Linking containers](/use/working_with_links_names/) - - [Cross-host linking containers](/use/ambassador_pattern_linking/) + - [Linking containers](/userguide/dockerlinks) + - [Cross-host linking containers](/articles/ambassador_pattern_linking/) - [Creating a Trusted Build](/docker-io/builds/#trusted-builds) diff --git a/docs/sources/examples/nodejs_web_app.md b/docs/sources/examples/nodejs_web_app.md index fe52aa9453..99946e99e0 100644 --- a/docs/sources/examples/nodejs_web_app.md +++ b/docs/sources/examples/nodejs_web_app.md @@ -1,14 +1,10 @@ -page_title: Running a Node.js app on CentOS -page_description: Installing and running a Node.js app on CentOS +page_title: Dockerizing a Node.js Web App +page_description: Installing and running a Node.js app with Docker page_keywords: docker, example, package installation, node, centos -# Node.js Web App +# Dockerizing a Node.js Web App > **Note**: -> -> - This example assumes you have Docker running in daemon mode. For -> more information please see [*Check your Docker -> install*](../hello_world/#running-examples). > - **If you don't like sudo** then see [*Giving non-root > access*](/installation/binaries/#dockergroup) @@ -187,11 +183,10 @@ Now you can call your app using `curl` (install if needed via: Content-Length: 12 Date: Sun, 02 Jun 2013 03:53:22 GMT Connection: keep-alive - + Hello World We hope this tutorial helped you get up and running with Node.js and CentOS on Docker. You can get the full source code at [https://github.com/gasi/docker-node-hello](https://github.com/gasi/docker-node-hello). -Continue to [*Redis Service*](../running_redis_service/#running-redis-service). diff --git a/docs/sources/examples/postgresql_service.md b/docs/sources/examples/postgresql_service.md index 6f0a3e6bb1..b931fd8ba4 100644 --- a/docs/sources/examples/postgresql_service.md +++ b/docs/sources/examples/postgresql_service.md @@ -1,26 +1,22 @@ -page_title: PostgreSQL service How-To +page_title: Dockerizing PostgreSQL page_description: Running and installing a PostgreSQL service page_keywords: docker, example, package installation, postgresql -# PostgreSQL Service +# Dockerizing PostgreSQL > **Note**: -> -> - This example assumes you have Docker running in daemon mode. For -> more information please see [*Check your Docker -> install*](../hello_world/#running-examples). > - **If you don't like sudo** then see [*Giving non-root > access*](/installation/binaries/#dockergroup) ## Installing PostgreSQL on Docker -Assuming there is no Docker image that suits your needs in [the index]( -http://index.docker.io), you can create one yourself. +Assuming there is no Docker image that suits your needs on the [Docker +Hub]( http://index.docker.io), you can create one yourself. -Start by creating a new Dockerfile: +Start by creating a new `Dockerfile`: > **Note**: -> This PostgreSQL setup is for development only purposes. Refer to the +> This PostgreSQL setup is for development-only purposes. Refer to the > PostgreSQL documentation to fine-tune these settings so that it is > suitably secure. @@ -32,7 +28,7 @@ Start by creating a new Dockerfile: MAINTAINER SvenDowideit@docker.com # Add the PostgreSQL PGP key to verify their Debian packages. - # It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc + # It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 # Add PostgreSQL's repository. It contains the most recent stable release @@ -87,11 +83,11 @@ And run the PostgreSQL server container (in the foreground): $ sudo docker run --rm -P --name pg_test eg_postgresql There are 2 ways to connect to the PostgreSQL server. We can use [*Link -Containers*](/use/working_with_links_names/#working-with-links-names), -or we can access it from our host (or the network). +Containers*](/userguide/dockerlinks), or we can access it from our host +(or the network). > **Note**: -> The `-rm` removes the container and its image when +> The `--rm` removes the container and its image when > the container exists successfully. ### Using container linking diff --git a/docs/sources/examples/python_web_app.md b/docs/sources/examples/python_web_app.md deleted file mode 100644 index f4b76d061d..0000000000 --- a/docs/sources/examples/python_web_app.md +++ /dev/null @@ -1,127 +0,0 @@ -page_title: Python Web app example -page_description: Building your own python web app using docker -page_keywords: docker, example, python, web app - -# Python Web App - -> **Note**: -> -> - This example assumes you have Docker running in daemon mode. For -> more information please see [*Check your Docker -> install*](../hello_world/#running-examples). -> - **If you don't like sudo** then see [*Giving non-root -> access*](/installation/binaries/#dockergroup) - -While using Dockerfiles is the preferred way to create maintainable and -repeatable images, its useful to know how you can try things out and -then commit your live changes to an image. - -The goal of this example is to show you how you can modify your own -Docker images by making changes to a running container, and then saving -the results as a new image. We will do that by making a simple `hello -world` Flask web application image. - -## Download the initial image - -Download the `shykes/pybuilder` Docker image from the `http://index.docker.io` -registry. - -This image contains a `buildapp` script to download -the web app and then `pip install` any required -modules, and a `runapp` script that finds the -`app.py` and runs it. - - $ sudo docker pull shykes/pybuilder - -> **Note**: -> This container was built with a very old version of docker (May 2013 - -> see [shykes/pybuilder](https://github.com/shykes/pybuilder) ), when the -> Dockerfile format was different, but the image can -> still be used now. - -## Interactively make some modifications - -We then start a new container running interactively using the image. -First, we set a `URL` variable that points to a -tarball of a simple helloflask web app, and then we run a command -contained in the image called `buildapp`, passing it -the `$URL` variable. The container is given a name -`pybuilder_run` which we will use in the next steps. - -While this example is simple, you could run any number of interactive -commands, try things out, and then exit when you're done. - - $ sudo docker run -i -t --name pybuilder_run shykes/pybuilder bash - - $$ URL=http://github.com/shykes/helloflask/archive/master.tar.gz - $$ /usr/local/bin/buildapp $URL - [...] - $$ exit - -## Commit the container to create a new image - -Save the changes we just made in the container to a new image called -`/builds/github.com/shykes/helloflask/master`. You -now have 3 different ways to refer to the container: name -`pybuilder_run`, short-id `c8b2e8228f11`, or long-id -`c8b2e8228f11b8b3e492cbf9a49923ae66496230056d61e07880dc74c5f495f9`. - - $ sudo docker commit pybuilder_run /builds/github.com/shykes/helloflask/master - c8b2e8228f11b8b3e492cbf9a49923ae66496230056d61e07880dc74c5f495f9 - -## Run the new image to start the web worker - -Use the new image to create a new container with network port 5000 -mapped to a local port - - $ sudo docker run -d -p 5000 --name web_worker /builds/github.com/shykes/helloflask/master /usr/local/bin/runapp - - - **"docker run -d "** run a command in a new container. We pass "-d" - so it runs as a daemon. - - **"-p 5000"** the web app is going to listen on this port, so it - must be mapped from the container to the host system. - - **/usr/local/bin/runapp** is the command which starts the web app. - -## View the container logs - -View the logs for the new `web_worker` container and -if everything worked as planned you should see the line -`Running on http://0.0.0.0:5000/` in the log output. - -To exit the view without stopping the container, hit Ctrl-C, or open -another terminal and continue with the example while watching the result -in the logs. - - $ sudo docker logs -f web_worker - * Running on http://0.0.0.0:5000/ - -## See the webapp output - -Look up the public-facing port which is NAT-ed. Find the private port -used by the container and store it inside of the `WEB_PORT` -variable. - -Access the web app using the `curl` binary. If -everything worked as planned you should see the line -`Hello world!` inside of your console. - - $ WEB_PORT=$(sudo docker port web_worker 5000 | awk -F: '{ print $2 }') - - # install curl if necessary, then ... - $ curl http://127.0.0.1:$WEB_PORT - Hello world! - -## Clean up example containers and images - - $ sudo docker ps --all - -List `--all` the Docker containers. If this -container had already finished running, it will still be listed here -with a status of `Exit 0`. - - $ sudo docker stop web_worker - $ sudo docker rm web_worker pybuilder_run - $ sudo docker rmi /builds/github.com/shykes/helloflask/master shykes/pybuilder:latest - -And now stop the running web worker, and delete the containers, so that -we can then delete the images that we used. diff --git a/docs/sources/examples/running_redis_service.md b/docs/sources/examples/running_redis_service.md index ca67048625..0eeef0625d 100644 --- a/docs/sources/examples/running_redis_service.md +++ b/docs/sources/examples/running_redis_service.md @@ -1,16 +1,8 @@ -page_title: Running a Redis service +page_title: Dockerizing a Redis service page_description: Installing and running an redis service page_keywords: docker, example, package installation, networking, redis -# Redis Service - -> **Note**: -> -> - This example assumes you have Docker running in daemon mode. For -> more information please see [*Check your Docker -> install*](../hello_world/#running-examples). -> - **If you don't like sudo** then see [*Giving non-root -> access*](/installation/binaries/#dockergroup) +# Dockerizing a Redis Service Very simple, no frills, Redis service attached to a web application using a link. diff --git a/docs/sources/examples/running_riak_service.md b/docs/sources/examples/running_riak_service.md index 852035f9a4..098cc9094b 100644 --- a/docs/sources/examples/running_riak_service.md +++ b/docs/sources/examples/running_riak_service.md @@ -1,30 +1,21 @@ -page_title: Running a Riak service +page_title: Dockerizing a Riak service page_description: Build a Docker image with Riak pre-installed page_keywords: docker, example, package installation, networking, riak -# Riak Service - -> **Note**: -> -> - This example assumes you have Docker running in daemon mode. For -> more information please see [*Check your Docker -> install*](../hello_world/#running-examples). -> - **If you don't like sudo** then see [*Giving non-root -> access*](/installation/binaries/#dockergroup) +# Dockerizing a Riak Service The goal of this example is to show you how to build a Docker image with Riak pre-installed. ## Creating a Dockerfile -Create an empty file called Dockerfile: +Create an empty file called `Dockerfile`: $ touch Dockerfile Next, define the parent image you want to use to build your image on top of. We'll use [Ubuntu](https://index.docker.io/_/ubuntu/) (tag: -`latest`), which is available on the [docker -index](http://index.docker.io): +`latest`), which is available on [Docker Hub](http://index.docker.io): # Riak # @@ -101,7 +92,7 @@ are started: ## Create a supervisord configuration file Create an empty file called `supervisord.conf`. Make -sure it's at the same directory level as your Dockerfile: +sure it's at the same directory level as your `Dockerfile`: touch supervisord.conf diff --git a/docs/sources/examples/running_ssh_service.md b/docs/sources/examples/running_ssh_service.md index 534e22e1b3..5be2c7053e 100644 --- a/docs/sources/examples/running_ssh_service.md +++ b/docs/sources/examples/running_ssh_service.md @@ -1,17 +1,10 @@ -page_title: Running an SSH service -page_description: Installing and running an sshd service +page_title: Dockerizing an SSH service +page_description: Installing and running an SSHd service on Docker page_keywords: docker, example, package installation, networking -# SSH Daemon Service +# Dockerizing an SSH Daemon Service -> **Note:** -> - This example assumes you have Docker running in daemon mode. For -> more information please see [*Check your Docker -> install*](../hello_world/#running-examples). -> - **If you don't like sudo** then see [*Giving non-root -> access*](/installation/binaries/#dockergroup) - -The following Dockerfile sets up an sshd service in a container that you +The following `Dockerfile` sets up an SSHd service in a container that you can use to connect to and inspect other container's volumes, or to get quick access to a test container. @@ -27,7 +20,7 @@ quick access to a test container. RUN apt-get update RUN apt-get install -y openssh-server - RUN mkdir /var/run/sshd + RUN mkdir /var/run/sshd RUN echo 'root:screencast' |chpasswd EXPOSE 22 @@ -37,16 +30,15 @@ Build the image using: $ sudo docker build --rm -t eg_sshd . -Then run it. You can then use `docker port` to find -out what host port the container's port 22 is mapped to: +Then run it. You can then use `docker port` to find out what host port +the container's port 22 is mapped to: $ sudo docker run -d -P --name test_sshd eg_sshd $ sudo docker port test_sshd 22 0.0.0.0:49154 -And now you can ssh to port `49154` on the Docker -daemon's host IP address (`ip address` or -`ifconfig` can tell you that): +And now you can ssh to port `49154` on the Docker daemon's host IP +address (`ip address` or `ifconfig` can tell you that): $ ssh root@192.168.1.2 -p 49154 # The password is ``screencast``. @@ -58,3 +50,4 @@ container, and then removing the image. $ sudo docker stop test_sshd $ sudo docker rm test_sshd $ sudo docker rmi eg_sshd + diff --git a/docs/sources/faq.md b/docs/sources/faq.md index 2494f33e9c..8dbdfd184f 100644 --- a/docs/sources/faq.md +++ b/docs/sources/faq.md @@ -142,12 +142,11 @@ running in parallel. ### How do I connect Docker containers? Currently the recommended way to link containers is via the link -primitive. You can see details of how to [work with links here]( -http://docs.docker.io/use/working_with_links_names/). +primitive. You can see details of how to [work with links +here](/userguide/dockerlinks). Also of useful when enabling more flexible service portability is the -[Ambassador linking pattern]( -http://docs.docker.io/use/ambassador_pattern_linking/). +[Ambassador linking pattern](/articles/ambassador_pattern_linking/). ### How do I run more than one process in a Docker container? @@ -156,8 +155,7 @@ http://supervisord.org/), runit, s6, or daemontools can do the trick. Docker will start up the process management daemon which will then fork to run additional processes. As long as the processor manager daemon continues to run, the container will continue to as well. You can see a more substantial -example [that uses supervisord here]( -http://docs.docker.io/examples/using_supervisord/). +example [that uses supervisord here](/articles/using_supervisord/). ### What platforms does Docker run on? @@ -207,5 +205,5 @@ You can find more answers on: - [Ask questions on Stackoverflow](http://stackoverflow.com/search?q=docker) - [Join the conversation on Twitter](http://twitter.com/docker) -Looking for something else to read? Checkout the [*Hello World*]( -../examples/hello_world/#hello-world) example. +Looking for something else to read? Checkout the [User +Guide](/userguide/). diff --git a/docs/sources/index.md b/docs/sources/index.md index 16f29f5708..f7295d9c10 100644 --- a/docs/sources/index.md +++ b/docs/sources/index.md @@ -6,8 +6,6 @@ page_keywords: docker, introduction, documentation, about, technology, understan **Develop, Ship and Run Any Application, Anywhere** -## Introduction - [**Docker**](https://www.docker.io) is a platform for developers and sysadmins to develop, ship, and run applications. Docker consists of: @@ -78,22 +76,17 @@ section](introduction/understanding-docker.md): > [Click here to go to the Understanding > Docker section](introduction/understanding-docker.md). -Next we get [**practical** with the Working with Docker -section](introduction/working-with-docker.md) and you can learn about: +### Installation Guides - - Docker on the command line; - - Get introduced to your first Docker commands; - - Get to know your way around the basics of Docker operation. - -> [Click here to go to the Working with -> Docker section](introduction/working-with-docker.md). - -If you want to see how to install Docker you can jump to the +Then we'll learn how to install Docker on a variety of platforms in our [installation](/installation/#installation) section. -> **Note**: -> We know how valuable your time is so you if you want to get started -> with Docker straight away don't hesitate to jump to [Working with -> Docker](introduction/working-with-docker.md). For a fuller -> understanding of Docker though we do recommend you read [Understanding -> Docker]( introduction/understanding-docker.md). +> [Click here to go to the Installation +> section](/installation/#installation). + +### Docker User Guide + +Once you've gotten Docker installed we recommend you step through our [Docker User Guide](/userguide/), which will give you an in depth introduction to Docker. + +> [Click here to go to the Docker User Guide](/userguide/). + diff --git a/docs/sources/installation/amazon.md b/docs/sources/installation/amazon.md index f7abec1550..86443147e7 100644 --- a/docs/sources/installation/amazon.md +++ b/docs/sources/installation/amazon.md @@ -53,8 +53,7 @@ add the *ubuntu* user to it so that you don't have to use `sudo` for every Docker command. Once you`ve got Docker installed, you're ready to try it out – head on -over to the [*First steps with Docker*](/use/basics/) or -[*Examples*](/examples/) section. +over to the [User Guide](/userguide). ## Amazon QuickStart (Release Candidate - March 2014) @@ -94,4 +93,4 @@ QuickStart*](#amazon-quickstart) to pick an image (or use one of your own) and skip the step with the *User Data*. Then continue with the [*Ubuntu*](../ubuntulinux/#ubuntu-linux) instructions. -Continue with the [*Hello World*](/examples/hello_world/#hello-world) example. +Continue with the [User Guide](/userguide/). diff --git a/docs/sources/installation/binaries.md b/docs/sources/installation/binaries.md index 494530a239..97e2f93c4e 100644 --- a/docs/sources/installation/binaries.md +++ b/docs/sources/installation/binaries.md @@ -56,20 +56,17 @@ Linux kernel (it even builds on OSX!). ## Giving non-root access -The `docker` daemon always runs as the root user, -and since Docker version 0.5.2, the `docker` daemon -binds to a Unix socket instead of a TCP port. By default that Unix -socket is owned by the user *root*, and so, by default, you can access -it with `sudo`. +The `docker` daemon always runs as the root user, and the `docker` +daemon binds to a Unix socket instead of a TCP port. By default that +Unix socket is owned by the user *root*, and so, by default, you can +access it with `sudo`. -Starting in version 0.5.3, if you (or your Docker installer) create a -Unix group called *docker* and add users to it, then the -`docker` daemon will make the ownership of the Unix -socket read/writable by the *docker* group when the daemon starts. The -`docker` daemon must always run as the root user, -but if you run the `docker` client as a user in the -*docker* group then you don't need to add `sudo` to -all the client commands. +If you (or your Docker installer) create a Unix group called *docker* +and add users to it, then the `docker` daemon will make the ownership of +the Unix socket read/writable by the *docker* group when the daemon +starts. The `docker` daemon must always run as the root user, but if you +run the `docker` client as a user in the *docker* group then you don't +need to add `sudo` to all the client commands. > **Warning**: > The *docker* group (or the group specified with `-G`) is root-equivalent; @@ -93,4 +90,4 @@ Then follow the regular installation steps. # run a container and open an interactive shell in the container $ sudo ./docker run -i -t ubuntu /bin/bash -Continue with the [*Hello World*](/examples/hello_world/#hello-world) example. +Continue with the [User Guide](/userguide/). diff --git a/docs/sources/installation/centos.md b/docs/sources/installation/centos.md index 7d2a9ae5d7..3966d0f092 100644 --- a/docs/sources/installation/centos.md +++ b/docs/sources/installation/centos.md @@ -2,23 +2,12 @@ page_title: Installation on CentOS page_description: Instructions for installing Docker on CentOS page_keywords: Docker, Docker documentation, requirements, linux, centos, epel, docker.io, docker-io -# CentOS +# CentOS -> **Note**: -> Docker is still under heavy development! We don't recommend using it in -> production yet, but we're getting closer with each release. Please see -> our blog post, [Getting to Docker 1.0]( -> http://blog.docker.io/2013/08/getting-to-docker-1-0/) - -> **Note**: -> This is a community contributed installation path. The only `official` -> installation is using the [*Ubuntu*](../ubuntulinux/#ubuntu-linux) -> installation path. This version may be out of date because it depends on -> some binaries to be updated and published. - -The Docker package is available via the EPEL repository. These instructions work -for CentOS 6 and later. They will likely work for other binary compatible EL6 -distributions such as Scientific Linux, but they haven't been tested. +The Docker package is available via the EPEL repository. These +instructions work for CentOS 6 and later. They will likely work for +other binary compatible EL6 distributions such as Scientific Linux, but +they haven't been tested. Please note that this package is part of [Extra Packages for Enterprise Linux (EPEL)](https://fedoraproject.org/wiki/EPEL), a community effort @@ -27,13 +16,13 @@ to create and maintain additional packages for the RHEL distribution. Also note that due to the current Docker limitations, Docker is able to run only on the **64 bit** architecture. -To run Docker, you will need [CentOS6](http://www.centos.org) or higher, with -a kernel version 2.6.32-431 or higher as this has specific kernel fixes -to allow Docker to run. +To run Docker, you will need [CentOS6](http://www.centos.org) or higher, +with a kernel version 2.6.32-431 or higher as this has specific kernel +fixes to allow Docker to run. ## Installation -Firstly, you need to ensure you have the EPEL repository enabled. Please +Firstly, you need to ensure you have the EPEL repository enabled. Please follow the [EPEL installation instructions]( https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F). @@ -59,7 +48,7 @@ If we want Docker to start at boot, we should also: $ sudo chkconfig docker on Now let's verify that Docker is working. First we'll need to get the latest -centos image. +`centos` image. $ sudo docker pull centos:latest @@ -73,15 +62,15 @@ This should generate some output similar to: REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos latest 0b443ba03958 2 hours ago 297.6 MB -Run a simple bash shell to test the image: +Run a simple bash shell to test the image: $ sudo docker run -i -t centos /bin/bash -If everything is working properly, you'll get a simple bash prompt. Type exit to continue. +If everything is working properly, you'll get a simple bash prompt. Type +exit to continue. -**Done!** -You can either continue with the [*Hello World*](/examples/hello_world/#hello-world) example, -or explore and build on the images yourself. +**Done!** You can either continue with the [Docker User +Guide](/userguide/) or explore and build on the images yourself. ## Issues? diff --git a/docs/sources/installation/debian.md b/docs/sources/installation/debian.md index def8cb77cf..0ad54b4328 100644 --- a/docs/sources/installation/debian.md +++ b/docs/sources/installation/debian.md @@ -38,18 +38,18 @@ Which should download the `ubuntu` image, and then start `bash` in a container. ### Giving non-root access -The `docker` daemon always runs as the `root` user, and since Docker -version 0.5.2, the `docker` daemon binds to a Unix socket instead of a -TCP port. By default that Unix socket is owned by the user `root`, and -so, by default, you can access it with `sudo`. +The `docker` daemon always runs as the `root` user and the `docker` +daemon binds to a Unix socket instead of a TCP port. By default that +Unix socket is owned by the user `root`, and so, by default, you can +access it with `sudo`. -Starting in version 0.5.3, if you (or your Docker installer) create a -Unix group called `docker` and add users to it, then the `docker` daemon -will make the ownership of the Unix socket read/writable by the `docker` -group when the daemon starts. The `docker` daemon must always run as the -root user, but if you run the `docker` client as a user in the `docker` -group then you don't need to add `sudo` to all the client commands. From -Docker 0.9.0 you can use the `-G` flag to specify an alternative group. +If you (or your Docker installer) create a Unix group called `docker` +and add users to it, then the `docker` daemon will make the ownership of +the Unix socket read/writable by the `docker` group when the daemon +starts. The `docker` daemon must always run as the root user, but if you +run the `docker` client as a user in the `docker` group then you don't +need to add `sudo` to all the client commands. From Docker 0.9.0 you can +use the `-G` flag to specify an alternative group. > **Warning**: > The `docker` group (or the group specified with the `-G` flag) is @@ -70,3 +70,7 @@ Docker 0.9.0 you can use the `-G` flag to specify an alternative group. # Restart the Docker daemon. $ sudo service docker restart +## What next? + +Continue with the [User Guide](/userguide/). + diff --git a/docs/sources/installation/fedora.md b/docs/sources/installation/fedora.md index d615d4f6c0..bcd54e6bd6 100644 --- a/docs/sources/installation/fedora.md +++ b/docs/sources/installation/fedora.md @@ -48,5 +48,7 @@ Now let's verify that Docker is working. $ sudo docker run -i -t fedora /bin/bash -**Done!**, now continue with the [*Hello -World*](/examples/hello_world/#hello-world) example. +## What next? + +Continue with the [User Guide](/userguide/). + diff --git a/docs/sources/installation/mac.md b/docs/sources/installation/mac.md index ef91081a53..135130ef8e 100644 --- a/docs/sources/installation/mac.md +++ b/docs/sources/installation/mac.md @@ -40,9 +40,8 @@ virtual machine and run the Docker daemon. (but least secure) is to just hit [Enter]. This passphrase is used by the `boot2docker ssh` command. - -Once you have an initialized virtual machine, you can `boot2docker stop` and -`boot2docker start` it. +Once you have an initialized virtual machine, you can `boot2docker stop` +and `boot2docker start` it. ## Upgrading @@ -60,29 +59,19 @@ To upgrade: boot2docker start ``` - ## Running Docker From your terminal, you can try the “hello world” example. Run: $ docker run ubuntu echo hello world -This will download the ubuntu image and print hello world. +This will download the `ubuntu` image and print `hello world`. -# Further details +## Container port redirection -The Boot2Docker management tool provides some commands: - -``` -$ ./boot2docker -Usage: ./boot2docker [] {help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|delete|download|version} [] -``` - -## Container port redirection - -The latest version of `boot2docker` sets up two network adaptors: one using NAT +The latest version of `boot2docker` sets up two network adapters: one using NAT to allow the VM to download images and files from the Internet, and one host only -network adaptor to which the container's ports will be exposed on. +network adapter to which the container's ports will be exposed on. If you run a container with an exposed port: @@ -103,6 +92,17 @@ If you want to share container ports with other computers on your LAN, you will need to set up [NAT adaptor based port forwarding]( https://github.com/boot2docker/boot2docker/blob/master/doc/WORKAROUNDS.md) +# Further details +The Boot2Docker management tool provides some commands: + +``` +$ ./boot2docker +Usage: ./boot2docker [] +{help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|delete|download|version} +[] +``` + +Continue with the [User Guide](/userguide/). For further information or to report issues, please see the [Boot2Docker site](http://boot2docker.io). diff --git a/docs/sources/installation/openSUSE.md b/docs/sources/installation/openSUSE.md index d2c8e54848..ce79de2699 100644 --- a/docs/sources/installation/openSUSE.md +++ b/docs/sources/installation/openSUSE.md @@ -48,5 +48,6 @@ Docker daemon. $ sudo usermod -G docker **Done!** -Now continue with the [*Hello World*]( -/examples/hello_world/#hello-world) example. + +Continue with the [User Guide](/userguide/). + diff --git a/docs/sources/installation/rhel.md b/docs/sources/installation/rhel.md index 7cb71ec0d6..c144573687 100644 --- a/docs/sources/installation/rhel.md +++ b/docs/sources/installation/rhel.md @@ -56,7 +56,8 @@ Now let's verify that Docker is working. $ sudo docker run -i -t fedora /bin/bash **Done!** -Now continue with the [*Hello World*](/examples/hello_world/#hello-world) example. + +Continue with the [User Guide](/userguide/). ## Issues? diff --git a/docs/sources/installation/softlayer.md b/docs/sources/installation/softlayer.md index 80b12741ff..d01866720c 100644 --- a/docs/sources/installation/softlayer.md +++ b/docs/sources/installation/softlayer.md @@ -24,5 +24,7 @@ page_keywords: IBM SoftLayer, virtualization, cloud, docker, documentation, inst 7. Then continue with the [*Ubuntu*](../ubuntulinux/#ubuntu-linux) instructions. -Continue with the [*Hello World*]( -/examples/hello_world/#hello-world) example. +## What next? + +Continue with the [User Guide](/userguide/). + diff --git a/docs/sources/installation/ubuntulinux.md b/docs/sources/installation/ubuntulinux.md index daba2c4ad1..bd32802bba 100644 --- a/docs/sources/installation/ubuntulinux.md +++ b/docs/sources/installation/ubuntulinux.md @@ -111,8 +111,7 @@ Now verify that the installation has worked by downloading the Type `exit` to exit -**Done!**, now continue with the [*Hello -World*](/examples/hello_world/#hello-world) example. +**Done!**, continue with the [User Guide](/userguide/). ## Ubuntu Raring 13.04 and Saucy 13.10 (64 bit) @@ -159,8 +158,7 @@ Now verify that the installation has worked by downloading the Type `exit` to exit -**Done!**, now continue with the [*Hello -World*](/examples/hello_world/#hello-world) example. +**Done!**, now continue with the [User Guide](/userguide/). ### Giving non-root access diff --git a/docs/sources/introduction/understanding-docker.md b/docs/sources/introduction/understanding-docker.md index 1d99be7046..e9041420af 100644 --- a/docs/sources/introduction/understanding-docker.md +++ b/docs/sources/introduction/understanding-docker.md @@ -7,7 +7,7 @@ page_keywords: docker, introduction, documentation, about, technology, understan **What is Docker?** Docker is a platform for developing, shipping, and running applications. -Docker is designed to deliver your applications faster. With Docker you +Docker is designed to deliver your applications faster. With Docker you can separate your applications from your infrastructure AND treat your infrastructure like a managed application. We want to help you ship code faster, test faster, deploy faster and shorten the cycle between writing @@ -317,15 +317,12 @@ Zones. ## Next steps -### Learning how to use Docker - -Visit [Working with Docker](working-with-docker.md). - ### Installing Docker Visit the [installation](/installation/#installation) section. -### Get the whole story +### The Docker User Guide + +[Learn how to use Docker](/userguide/). -[https://www.docker.io/the_whole_story/](https://www.docker.io/the_whole_story/) diff --git a/docs/sources/introduction/working-with-docker.md b/docs/sources/introduction/working-with-docker.md deleted file mode 100644 index aefdc586c0..0000000000 --- a/docs/sources/introduction/working-with-docker.md +++ /dev/null @@ -1,292 +0,0 @@ -page_title: Introduction to working with Docker -page_description: Introduction to working with Docker and Docker commands. -page_keywords: docker, introduction, documentation, about, technology, understanding, Dockerfile - -# An Introduction to working with Docker - -**Getting started with Docker** - -> **Note:** -> If you would like to see how a specific command -> works, check out the glossary of all available client -> commands on our [Commands Reference](/reference/commandline/cli). - -## Introduction - -In the [Understanding Docker](understanding-docker.md) section we -covered the components that make up Docker, learned about the underlying -technology and saw *how* everything works. - -Now, let's get an introduction to the basics of interacting with Docker. - -> **Note:** -> This page assumes you have a host with a running Docker -> daemon and access to a Docker client. To see how to install Docker on -> a variety of platforms see the [installation -> section](/installation/#installation). - -## How to use the client - -The client provides you a command-line interface to Docker. It is -accessed by running the `docker` binary. - -> **Tip:** -> The below instructions can be considered a summary of our -> [interactive tutorial](https://www.docker.io/gettingstarted). If you -> prefer a more hands-on approach without installing anything, why not -> give that a shot and check out the -> [tutorial](https://www.docker.io/gettingstarted). - -The `docker` client usage is pretty simple. Each action you can take -with Docker is a command and each command can take a series of -flags and arguments. - - # Usage: [sudo] docker [flags] [command] [arguments] .. - # Example: - $ docker run -i -t ubuntu /bin/bash - -## Using the Docker client - -Let's get started with the Docker client by running our first Docker -command. We're going to use the `docker version` command to return -version information on the currently installed Docker client and daemon. - - # Usage: [sudo] docker version - # Example: - $ docker version - -This command will not only provide you the version of Docker client and -daemon you are using, but also the version of Go (the programming -language powering Docker). - - Client version: 0.8.0 - Go version (client): go1.2 - - Git commit (client): cc3a8c8 - Server version: 0.8.0 - - Git commit (server): cc3a8c8 - Go version (server): go1.2 - - Last stable version: 0.8.0 - -### Seeing what the Docker client can do - -We can see all of the commands available to us with the Docker client by -running the `docker` binary without any options. - - # Usage: [sudo] docker - # Example: - $ docker - -You will see a list of all currently available commands. - - Commands: - attach Attach to a running container - build Build an image from a Dockerfile - commit Create a new image from a container's changes - . . . - -### Seeing Docker command usage - -You can also zoom in and review the usage for specific Docker commands. - -Try typing Docker followed with a `[command]` to see the usage for that -command: - - # Usage: [sudo] docker [command] [--help] - # Example: - $ docker attach - Help output . . . - -Or you can also pass the `--help` flag to the `docker` binary. - - $ docker images --help - -This will display the help text and all available flags: - - Usage: docker attach [OPTIONS] CONTAINER - - Attach to a running container - - --no-stdin=false: Do not attach stdin - --sig-proxy=true: Proxify all received signal to the process (even in non-tty mode) - -## Working with images - -Let's get started with using Docker by working with Docker images, the -building blocks of Docker containers. - -### Docker Images - -As we've discovered a Docker image is a read-only template that we build -containers from. Every Docker container is launched from an image. You can -use both images provided by Docker, such as the base `ubuntu` image, -as well as images built by others. For example we can build an image that -runs Apache and our own web application as a starting point to launch containers. - -### Searching for images - -To search for Docker image we use the `docker search` command. The -`docker search` command returns a list of all images that match your -search criteria, together with some useful information about that image. - -This information includes social metrics like how many other people like -the image: we call these "likes" *stars*. We also tell you if an image -is *trusted*. A *trusted* image is built from a known source and allows -you to introspect in greater detail how the image is constructed. - - # Usage: [sudo] docker search [image name] - # Example: - $ docker search nginx - - NAME DESCRIPTION STARS OFFICIAL TRUSTED - dockerfile/nginx Trusted Nginx (http://nginx.org/) Build 6 [OK] - paintedfox/nginx-php5 A docker image for running Nginx with PHP5. 3 [OK] - dockerfiles/django-uwsgi-nginx Dockerfile and configuration files to buil... 2 [OK] - . . . - -> **Note:** -> To learn more about trusted builds, check out -> [this](http://blog.docker.io/2013/11/introducing-trusted-builds) blog -> post. - -### Downloading an image - -Once we find an image we'd like to download we can pull it down from -[Docker.io](https://index.docker.io) using the `docker pull` command. - - # Usage: [sudo] docker pull [image name] - # Example: - $ docker pull dockerfile/nginx - - Pulling repository dockerfile/nginx - 0ade68db1d05: Pulling dependent layers - 27cf78414709: Download complete - b750fe79269d: Download complete - . . . - -As you can see, Docker will download, one by one, all the layers forming -the image. - -### Listing available images - -You may already have some images you've pulled down or built yourself -and you can use the `docker images` command to see the images -available to you locally. - - # Usage: [sudo] docker images - # Example: - $ docker images - - REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE - myUserName/nginx latest a0d6c70867d2 41 seconds ago 578.8 MB - nginx latest 173c2dd28ab2 3 minutes ago 578.8 MB - dockerfile/nginx latest 0ade68db1d05 3 weeks ago 578.8 MB - -### Building our own images - -You can build your own images using a `Dockerfile` and the `docker -build` command. The `Dockerfile` is very flexible and provides a -powerful set of instructions for building applications into Docker -images. To learn more about the `Dockerfile` see the [`Dockerfile` -Reference](/reference/builder/) and [tutorial](https://www.docker.io/learn/dockerfile/). - -## Working with containers - -### Docker Containers - -Docker containers run your applications and are built from Docker -images. In order to create or start a container, you need an image. This -could be the base `ubuntu` image or an image built and shared with you -or an image you've built yourself. - -### Running a new container from an image - -The easiest way to create a new container is to *run* one from an image -using the `docker run` command. - - # Usage: [sudo] docker run [arguments] .. - # Example: - $ docker run -d --name nginx_web nginx /usr/sbin/nginx - 25137497b2749e226dd08f84a17e4b2be114ddf4ada04125f130ebfe0f1a03d3 - -This will create a new container from an image called `nginx` which will -launch the command `/usr/sbin/nginx` when the container is run. We've -also given our container a name, `nginx_web`. When the container is run -Docker will return a container ID, a long string that uniquely -identifies our container. We use can the container's name or its string -to work with it. - -Containers can be run in two modes: - -* Interactive; -* Daemonized; - -An interactive container runs in the foreground and you can connect to -it and interact with it, for example sign into a shell on that -container. A daemonized container runs in the background. - -A container will run as long as the process you have launched inside it -is running, for example if the `/usr/bin/nginx` process stops running -the container will also stop. - -### Listing containers - -We can see a list of all the containers on our host using the `docker -ps` command. By default the `docker ps` command only shows running -containers. But we can also add the `-a` flag to show *all* containers: -both running and stopped. - - # Usage: [sudo] docker ps [-a] - # Example: - $ docker ps - - CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES - 842a50a13032 $ dockerfile/nginx:latest nginx 35 minutes ago Up 30 minutes 0.0.0.0:80->80/tcp nginx_web - -### Stopping a container - -You can use the `docker stop` command to stop an active container. This -will gracefully end the active process. - - # Usage: [sudo] docker stop [container ID] - # Example: - $ docker stop nginx_web - nginx_web - -If the `docker stop` command succeeds it will return the name of -the container it has stopped. - -> **Note:** -> If you want you to more aggressively stop a container you can use the -> `docker kill` command. - -### Starting a Container - -Stopped containers can be started again. - - # Usage: [sudo] docker start [container ID] - # Example: - $ docker start nginx_web - nginx_web - -If the `docker start` command succeeds it will return the name of the -freshly started container. - -## Next steps - -Here we've learned the basics of how to interact with Docker images and -how to run and work with our first container. - -### Understanding Docker - -Visit [Understanding Docker](understanding-docker.md). - -### Installing Docker - -Visit the [installation](/installation/#installation) section. - -### Get the whole story - -[https://www.docker.io/the_whole_story/](https://www.docker.io/the_whole_story/) diff --git a/docs/sources/reference/api/docker_remote_api_v1.10.md b/docs/sources/reference/api/docker_remote_api_v1.10.md index f743cb0b22..336edfbe5b 100644 --- a/docs/sources/reference/api/docker_remote_api_v1.10.md +++ b/docs/sources/reference/api/docker_remote_api_v1.10.md @@ -7,9 +7,8 @@ page_keywords: API, Docker, rcli, REST, documentation ## 1. Brief introduction - The Remote API has replaced rcli - - The daemon listens on `unix:///var/run/docker.sock` but you can - [*Bind Docker to another host/port or a Unix socket*]( - /use/basics/#bind-docker). + - The daemon listens on `unix:///var/run/docker.sock` but you can bind + Docker to another host/port or a Unix socket. - The API tends to be REST, but for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout, stdin` and `stderr` diff --git a/docs/sources/reference/api/docker_remote_api_v1.11.md b/docs/sources/reference/api/docker_remote_api_v1.11.md index 8f4709ee69..4133deaea6 100644 --- a/docs/sources/reference/api/docker_remote_api_v1.11.md +++ b/docs/sources/reference/api/docker_remote_api_v1.11.md @@ -7,9 +7,8 @@ page_keywords: API, Docker, rcli, REST, documentation ## 1. Brief introduction - The Remote API has replaced rcli - - The daemon listens on `unix:///var/run/docker.sock` but you can - [*Bind Docker to another host/port or a Unix socket*]( - /use/basics/#bind-docker). + - The daemon listens on `unix:///var/run/docker.sock` but you can bind + Docker to another host/port or a Unix socket. - The API tends to be REST, but for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout, stdin` and `stderr` diff --git a/docs/sources/reference/api/docker_remote_api_v1.6.md b/docs/sources/reference/api/docker_remote_api_v1.6.md index bca09a3a0e..cd5b949c6e 100644 --- a/docs/sources/reference/api/docker_remote_api_v1.6.md +++ b/docs/sources/reference/api/docker_remote_api_v1.6.md @@ -7,9 +7,8 @@ page_keywords: API, Docker, rcli, REST, documentation # 1. Brief introduction - The Remote API has replaced rcli - - The daemon listens on `unix:///var/run/docker.sock` but you can - [*Bind Docker to another host/port or a Unix socket*]( - /use/basics/#bind-docker). + - The daemon listens on `unix:///var/run/docker.sock` but you can bind + Docker to another host/port or a Unix socket. - The API tends to be REST, but for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout, stdin` and `stderr` diff --git a/docs/sources/reference/api/docker_remote_api_v1.7.md b/docs/sources/reference/api/docker_remote_api_v1.7.md index 818fbba11c..3ad2a729c5 100644 --- a/docs/sources/reference/api/docker_remote_api_v1.7.md +++ b/docs/sources/reference/api/docker_remote_api_v1.7.md @@ -7,9 +7,8 @@ page_keywords: API, Docker, rcli, REST, documentation # 1. Brief introduction - The Remote API has replaced rcli - - The daemon listens on `unix:///var/run/docker.sock` but you can - [*Bind Docker to another host/port or a Unix socket*]( - /use/basics/#bind-docker). + - The daemon listens on `unix:///var/run/docker.sock` but you can bind + Docker to another host/port or a Unix socket. - The API tends to be REST, but for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout, stdin` and `stderr` diff --git a/docs/sources/reference/api/docker_remote_api_v1.8.md b/docs/sources/reference/api/docker_remote_api_v1.8.md index 0d2997693c..597922e1f0 100644 --- a/docs/sources/reference/api/docker_remote_api_v1.8.md +++ b/docs/sources/reference/api/docker_remote_api_v1.8.md @@ -7,9 +7,8 @@ page_keywords: API, Docker, rcli, REST, documentation # 1. Brief introduction - The Remote API has replaced rcli - - The daemon listens on `unix:///var/run/docker.sock` but you can - [*Bind Docker to another host/port or a Unix socket*]( - /use/basics/#bind-docker). + - The daemon listens on `unix:///var/run/docker.sock` but you can bind + Docker to another host/port or a Unix socket. - The API tends to be REST, but for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout, stdin` and `stderr` diff --git a/docs/sources/reference/api/docker_remote_api_v1.9.md b/docs/sources/reference/api/docker_remote_api_v1.9.md index d8be62a7a7..2030959f96 100644 --- a/docs/sources/reference/api/docker_remote_api_v1.9.md +++ b/docs/sources/reference/api/docker_remote_api_v1.9.md @@ -7,9 +7,8 @@ page_keywords: API, Docker, rcli, REST, documentation # 1. Brief introduction - The Remote API has replaced rcli - - The daemon listens on `unix:///var/run/docker.sock` but you can - [*Bind Docker to another host/port or a Unix socket*]( - /use/basics/#bind-docker). + - The daemon listens on `unix:///var/run/docker.sock` but you can bind + Docker to another host/port or a Unix socket. - The API tends to be REST, but for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout, stdin` and `stderr` diff --git a/docs/sources/reference/builder.md b/docs/sources/reference/builder.md index 235d92e1b7..10973665b1 100644 --- a/docs/sources/reference/builder.md +++ b/docs/sources/reference/builder.md @@ -57,7 +57,7 @@ accelerating `docker build` significantly (indicated by `Using cache`): When you're done with your build, you're ready to look into [*Pushing a repository to its registry*]( -/use/workingwithrepository/#image-push). +/userguide/dockerrepos/#image-push). ## Format @@ -95,7 +95,7 @@ The `FROM` instruction sets the [*Base Image*](/terms/image/#base-image-def) for subsequent instructions. As such, a valid Dockerfile must have `FROM` as its first instruction. The image can be any valid image – it is especially easy to start by **pulling an image** from the [*Public Repositories*]( -/use/workingwithrepository/#using-public-repositories). +/userguide/dockerrepos/#using-public-repositories). `FROM` must be the first non-comment instruction in the Dockerfile. @@ -200,10 +200,8 @@ default specified in CMD. The `EXPOSE` instructions informs Docker that the container will listen on the specified network ports at runtime. Docker uses this information to interconnect -containers using links (see -[*links*](/use/working_with_links_names/#working-with-links-names)), -and to setup port redirection on the host system (see [*Redirect Ports*]( -/use/port_redirection/#port-redirection)). +containers using links (see the [Docker User +Guide](/userguide/dockerlinks)). ## ENV @@ -380,7 +378,7 @@ and mark it as holding externally mounted volumes from native host or other containers. The value can be a JSON array, `VOLUME ["/var/log/"]`, or a plain string, `VOLUME /var/log`. For more information/examples and mounting instructions via the Docker client, refer to [*Share Directories via Volumes*]( -/use/working_with_volumes/#volume-def) documentation. +/userguide/dockervolumes/#volume-def) documentation. ## USER diff --git a/docs/sources/reference/commandline/cli.md b/docs/sources/reference/commandline/cli.md index 8325bc794f..f2e370ace5 100644 --- a/docs/sources/reference/commandline/cli.md +++ b/docs/sources/reference/commandline/cli.md @@ -602,15 +602,6 @@ contains complex json object, so to grab it as JSON, you use The main process inside the container will be sent SIGKILL, or any signal specified with option `--signal`. -### Known Issues (kill) - -- [Issue 197](https://github.com/dotcloud/docker/issues/197) indicates - that `docker kill` may leave directories behind - and make it difficult to remove the container. -- [Issue 3844](https://github.com/dotcloud/docker/issues/3844) lxc - 1.0.0 beta3 removed `lcx-kill` which is used by - Docker versions before 0.8.0; see the issue for a workaround. - ## load Usage: docker load @@ -864,11 +855,9 @@ of all containers. The `docker run` command can be used in combination with `docker commit` to [*change the command that a container runs*](#commit-an-existing-container). -See [*Redirect Ports*](/use/port_redirection/#port-redirection) -for more detailed information about the `--expose`, `-p`, `-P` and `--link` -parameters, and [*Link Containers*]( -/use/working_with_links_names/#working-with-links-names) for specific -examples using `--link`. +See the [Docker User Guide](/userguide/dockerlinks/) for more detailed +information about the `--expose`, `-p`, `-P` and `--link` parameters, +and linking containers. ### Known Issues (run –volumes-from) @@ -934,16 +923,16 @@ manipulate the host's docker daemon. $ sudo docker run -p 127.0.0.1:80:8080 ubuntu bash -This binds port `8080` of the container to port `80` on `127.0.0.1` of the host -machine. [*Redirect Ports*](/use/port_redirection/#port-redirection) +This binds port `8080` of the container to port `80` on `127.0.0.1` of +the host machine. The [Docker User Guide](/userguide/dockerlinks/) explains in detail how to manipulate ports in Docker. $ sudo docker run --expose 80 ubuntu bash -This exposes port `80` of the container for use within a link without publishing -the port to the host system's interfaces. [*Redirect Ports*]( -/use/port_redirection/#port-redirection) explains in detail how to -manipulate ports in Docker. +This exposes port `80` of the container for use within a link without +publishing the port to the host system's interfaces. The [Docker User +Guide](/userguide/dockerlinks) explains in detail how to manipulate +ports in Docker. $ sudo docker run -e MYVAR1 --env MYVAR2=foo --env-file ./env.list ubuntu bash @@ -1097,7 +1086,7 @@ Search [Docker.io](https://index.docker.io) for images -t, --trusted=false Only show trusted builds See [*Find Public Images on Docker.io*]( -/use/workingwithrepository/#find-public-images-on-dockerio) for +/userguide/dockerrepos/#find-public-images-on-dockerio) for more details on finding shared images from the commandline. ## start @@ -1130,7 +1119,7 @@ grace period, SIGKILL You can group your images together using names and tags, and then upload them to [*Share Images via Repositories*]( -/use/workingwithrepository/#working-with-the-repository). +/userguide/dockerrepos/#working-with-the-repository). ## top diff --git a/docs/sources/reference/run.md b/docs/sources/reference/run.md index aa3d941b13..7d5fcbc51f 100644 --- a/docs/sources/reference/run.md +++ b/docs/sources/reference/run.md @@ -11,21 +11,17 @@ The [*Image*](/terms/image/#image-def) which starts the process may define defaults related to the binary to run, the networking to expose, and more, but `docker run` gives final control to the operator who starts the container from the image. That's the main -reason [*run*](/commandline/cli/#cli-run) has more options than any +reason [*run*](/reference/commandline/cli/#cli-run) has more options than any other `docker` command. -Every one of the [*Examples*](/examples/#example-list) shows -running containers, and so here we try to give more in-depth guidance. - ## General Form -As you`ve seen in the [*Examples*](/examples/#example-list), the -basic run command takes this form: +The basic `docker run` command takes this form: $ docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...] To learn how to interpret the types of `[OPTIONS]`, -see [*Option types*](/commandline/cli/#cli-options). +see [*Option types*](/reference/commandline/cli/#cli-options). The list of `[OPTIONS]` breaks down into two groups: @@ -75,9 +71,9 @@ default foreground mode: In detached mode (`-d=true` or just `-d`), all I/O should be done through network connections or shared volumes because the container is -no longer listening to the commandline where you executed `docker run`. +no longer listening to the command line where you executed `docker run`. You can reattach to a detached container with `docker` -[*attach*](commandline/cli/#attach). If you choose to run a +[*attach*](/reference/commandline/cli/#attach). If you choose to run a container in the detached mode, then you cannot use the `--rm` option. ### Foreground @@ -85,7 +81,7 @@ container in the detached mode, then you cannot use the `--rm` option. In foreground mode (the default when `-d` is not specified), `docker run` can start the process in the container and attach the console to the process's standard input, output, and standard error. It can even pretend to be a TTY -(this is what most commandline executables expect) and pass along signals. All +(this is what most command line executables expect) and pass along signals. All of that is configurable: -a=[] : Attach to ``stdin``, ``stdout`` and/or ``stderr`` @@ -121,11 +117,11 @@ assign a name to the container with `--name` then the daemon will also generate a random string name too. The name can become a handy way to add meaning to a container since you can use this name when defining -[*links*](/use/working_with_links_names/#working-with-links-names) +[*links*](/userguide/dockerlinks/#working-with-links-names) (or any other place you need to identify a container). This works for both background and foreground Docker containers. -### PID Equivalent +### PID Equivalent And finally, to help with automation, you can have Docker write the container ID out to a file of your choosing. This is similar to how some @@ -256,7 +252,7 @@ familiar with using LXC directly. ## Overriding Dockerfile Image Defaults -When a developer builds an image from a [*Dockerfile*](builder/#dockerbuilder) +When a developer builds an image from a [*Dockerfile*](/reference/builder/#dockerbuilder) or when she commits it, the developer can set a number of default parameters that take effect when the image starts up as a container. @@ -425,7 +421,7 @@ mechanism to communicate with a linked container by its alias: --volumes-from="": Mount all volumes from the given container(s) The volumes commands are complex enough to have their own documentation in -section [*Share Directories via Volumes*](/use/working_with_volumes/#volume-def). +section [*Share Directories via Volumes*](/userguide/dockervolumes/#volume-def). A developer can define one or more `VOLUME's associated with an image, but only the operator can give access from one container to another (or from a container to a volume mounted on the host). diff --git a/docs/sources/terms/container.md b/docs/sources/terms/container.md index 5bedc3160e..8b42868788 100644 --- a/docs/sources/terms/container.md +++ b/docs/sources/terms/container.md @@ -8,18 +8,19 @@ page_keywords: containers, lxc, concepts, explanation, image, container ![](/terms/images/docker-filesystems-busyboxrw.png) -Once you start a process in Docker from an [*Image*](image.md), Docker fetches -the image and its [*Parent Image*](image.md), and repeats the process until it -reaches the [*Base Image*](image.md/#base-image-def). Then the -[*Union File System*](layer.md) adds a read-write layer on top. That read-write -layer, plus the information about its [*Parent Image*](image.md) and some -additional information like its unique id, networking configuration, and -resource limits is called a **container**. +Once you start a process in Docker from an [*Image*](/terms/image), Docker +fetches the image and its [*Parent Image*](/terms/image), and repeats the +process until it reaches the [*Base Image*](/terms/image/#base-image-def). Then +the [*Union File System*](/terms/layer) adds a read-write layer on top. That +read-write layer, plus the information about its [*Parent +Image*](/terms/image) +and some additional information like its unique id, networking +configuration, and resource limits is called a **container**. ## Container State -Containers can change, and so they have state. A container may be **running** or -**exited**. +Containers can change, and so they have state. A container may be +**running** or **exited**. When a container is running, the idea of a "container" also includes a tree of processes running on the CPU, isolated from the other processes @@ -31,13 +32,13 @@ processes restart from scratch (their memory state is **not** preserved in a container), but the file system is just as it was when the container was stopped. -You can promote a container to an [*Image*](image.md) with `docker commit`. +You can promote a container to an [*Image*](/terms/image) with `docker commit`. Once a container is an image, you can use it as a parent for new containers. ## Container IDs All containers are identified by a 64 hexadecimal digit string (internally a 256bit value). To simplify their use, a short ID of the -first 12 characters can be used on the commandline. There is a small +first 12 characters can be used on the command line. There is a small possibility of short id collisions, so the docker server will always return the long ID. diff --git a/docs/sources/terms/image.md b/docs/sources/terms/image.md index b10debcc6a..40438be631 100644 --- a/docs/sources/terms/image.md +++ b/docs/sources/terms/image.md @@ -8,10 +8,10 @@ page_keywords: containers, lxc, concepts, explanation, image, container ![](/terms/images/docker-filesystems-debian.png) -In Docker terminology, a read-only [*Layer*](../layer/#layer-def) is +In Docker terminology, a read-only [*Layer*](/terms/layer/#layer-def) is called an **image**. An image never changes. -Since Docker uses a [*Union File System*](../layer/#ufs-def), the +Since Docker uses a [*Union File System*](/terms/layer/#ufs-def), the processes think the whole file system is mounted read-write. But all the changes go to the top-most writeable layer, and underneath, the original file in the read-only image is unchanged. Since images don't change, diff --git a/docs/sources/terms/layer.md b/docs/sources/terms/layer.md index b4b2ea4b7a..561807fc44 100644 --- a/docs/sources/terms/layer.md +++ b/docs/sources/terms/layer.md @@ -7,7 +7,7 @@ page_keywords: containers, lxc, concepts, explanation, image, container ## Introduction In a traditional Linux boot, the kernel first mounts the root [*File -System*](../filesystem/#filesystem-def) as read-only, checks its +System*](/terms/filesystem/#filesystem-def) as read-only, checks its integrity, and then switches the whole rootfs volume to read-write mode. ## Layer diff --git a/docs/sources/terms/registry.md b/docs/sources/terms/registry.md index 2006710607..08f8e8f69d 100644 --- a/docs/sources/terms/registry.md +++ b/docs/sources/terms/registry.md @@ -6,9 +6,9 @@ page_keywords: containers, concepts, explanation, image, repository, container ## Introduction -A Registry is a hosted service containing [*repositories*]( -../repository/#repository-def) of [*images*](../image/#image-def) which -responds to the Registry API. +A Registry is a hosted service containing +[*repositories*](/terms/repository/#repository-def) of +[*images*](/terms/image/#image-def) which responds to the Registry API. The default registry can be accessed using a browser at [Docker.io](http://index.docker.io) or using the @@ -16,5 +16,5 @@ The default registry can be accessed using a browser at ## Further Reading -For more information see [*Working with Repositories*]( -../use/workingwithrepository/#working-with-the-repository) +For more information see [*Working with +Repositories*](/userguide/dockerrepos/#working-with-the-repository) diff --git a/docs/sources/terms/repository.md b/docs/sources/terms/repository.md index 1e035c95f4..52c83d45d8 100644 --- a/docs/sources/terms/repository.md +++ b/docs/sources/terms/repository.md @@ -7,7 +7,7 @@ page_keywords: containers, concepts, explanation, image, repository, container ## Introduction A repository is a set of images either on your local Docker server, or -shared, by pushing it to a [*Registry*](../registry/#registry-def) +shared, by pushing it to a [*Registry*](/terms/registry/#registry-def) server. Images can be associated with a repository (or multiple) by giving them @@ -31,5 +31,5 @@ If you create a new repository which you want to share, you will need to set at least the `user_name`, as the `default` blank `user_name` prefix is reserved for official Docker images. -For more information see [*Working with Repositories*]( -../use/workingwithrepository/#working-with-the-repository) +For more information see [*Working with +Repositories*](/userguide/dockerrepos/#working-with-the-repository) diff --git a/docs/sources/use.md b/docs/sources/use.md deleted file mode 100644 index 5b2524361e..0000000000 --- a/docs/sources/use.md +++ /dev/null @@ -1,13 +0,0 @@ -# Use - -## Contents: - - - [First steps with Docker](basics/) - - [Share Images via Repositories](workingwithrepository/) - - [Redirect Ports](port_redirection/) - - [Configure Networking](networking/) - - [Automatically Start Containers](host_integration/) - - [Share Directories via Volumes](working_with_volumes/) - - [Link Containers](working_with_links_names/) - - [Link via an Ambassador Container](ambassador_pattern_linking/) - - [Using Puppet](puppet/) \ No newline at end of file diff --git a/docs/sources/use/port_redirection.md b/docs/sources/use/port_redirection.md deleted file mode 100644 index 315ef2650d..0000000000 --- a/docs/sources/use/port_redirection.md +++ /dev/null @@ -1,127 +0,0 @@ -page_title: Redirect Ports -page_description: usage about port redirection -page_keywords: Usage, basic port, docker, documentation, examples - -# Redirect Ports - -## Introduction - -Interacting with a service is commonly done through a connection to a -port. When this service runs inside a container, one can connect to the -port after finding the IP address of the container as follows: - - # Find IP address of container with ID - $ docker inspect --format='{{.NetworkSettings.IPAddress}}' - -However, this IP address is local to the host system and the container -port is not reachable by the outside world. Furthermore, even if the -port is used locally, e.g. by another container, this method is tedious -as the IP address of the container changes every time it starts. - -Docker addresses these two problems and give a simple and robust way to -access services running inside containers. - -To allow non-local clients to reach the service running inside the -container, Docker provide ways to bind the container port to an -interface of the host system. To simplify communication between -containers, Docker provides the linking mechanism. - -## Auto map all exposed ports on the host - -To bind all the exposed container ports to the host automatically, use -`docker run -P `. The mapped host ports will be auto-selected -from a pool of unused ports (49000..49900), and you will need to use -`docker ps`, `docker inspect ` or `docker port - ` to determine what they are. - -## Binding a port to a host interface - -To bind a port of the container to a specific interface of the host -system, use the `-p` parameter of the `docker run` command: - - # General syntax - $ docker run -p [([:[host_port]])|():][/udp] - -When no host interface is provided, the port is bound to all available -interfaces of the host machine (aka INADDR_ANY, or 0.0.0.0). When no -host port is provided, one is dynamically allocated. The possible -combinations of options for TCP port are the following: - - # Bind TCP port 8080 of the container to TCP port 80 on 127.0.0.1 of the host machine. - $ docker run -p 127.0.0.1:80:8080 - - # Bind TCP port 8080 of the container to a dynamically allocated TCP port on 127.0.0.1 of the host machine. - $ docker run -p 127.0.0.1::8080 - - # Bind TCP port 8080 of the container to TCP port 80 on all available interfaces of the host machine. - $ docker run -p 80:8080 - - # Bind TCP port 8080 of the container to a dynamically allocated TCP port on all available interfaces of the host machine. - $ docker run -p 8080 - -UDP ports can also be bound by adding a trailing `/udp`. All the -combinations described for TCP work. Here is only one example: - - # Bind UDP port 5353 of the container to UDP port 53 on 127.0.0.1 of the host machine. - $ docker run -p 127.0.0.1:53:5353/udp - -The command `docker port` lists the interface and port on the host -machine bound to a given container port. It is useful when using -dynamically allocated ports: - - # Bind to a dynamically allocated port - $ docker run -p 127.0.0.1::8080 --name dyn-bound - - # Lookup the actual port - $ docker port dyn-bound 8080 - 127.0.0.1:49160 - -## Linking a container - -Communication between two containers can also be established in a -Docker-specific way called linking. - -To briefly present the concept of linking, let us consider two -containers: `server`, containing the service, and `client`, accessing -the service. Once `server` is running, `client` is started and links to -server. Linking sets environment variables in `client` giving it some -information about `server`. In this sense, linking is a method of -service discovery. - -Let us now get back to our topic of interest; communication between the -two containers. We mentioned that the tricky part about this -communication was that the IP address of `server` was not fixed. -Therefore, some of the environment variables are going to be used to -inform `client` about this IP address. This process called exposure, is -possible because the `client` is started after the `server` has been started. - -Here is a full example. On `server`, the port of interest is exposed. -The exposure is done either through the `--expose` parameter to the -`docker run` command, or the `EXPOSE` build command in a `Dockerfile`: - - # Expose port 80 - $ docker run --expose 80 --name server - -The `client` then links to the `server`: - - # Link - $ docker run --name client --link server:linked-server - -Here `client` locally refers to `server` as `linked-server`. The following -environment variables, among others, are available on `client`: - - # The default protocol, ip, and port of the service running in the container - $ LINKED-SERVER_PORT=tcp://172.17.0.8:80 - - # A specific protocol, ip, and port of various services - $ LINKED-SERVER_PORT_80_TCP=tcp://172.17.0.8:80 - $ LINKED-SERVER_PORT_80_TCP_PROTO=tcp - $ LINKED-SERVER_PORT_80_TCP_ADDR=172.17.0.8 - $ LINKED-SERVER_PORT_80_TCP_PORT=80 - -This tells `client` that a service is running on port 80 of `server` and -that `server` is accessible at the IP address `172.17.0.8`: - -> **Note:** -> Using the `-p` parameter also exposes the port. - diff --git a/docs/sources/use/working_with_links_names.md b/docs/sources/use/working_with_links_names.md deleted file mode 100644 index d69f3f1751..0000000000 --- a/docs/sources/use/working_with_links_names.md +++ /dev/null @@ -1,139 +0,0 @@ -page_title: Link Containers -page_description: How to create and use both links and names -page_keywords: Examples, Usage, links, linking, docker, documentation, examples, names, name, container naming - -# Link Containers - -## Introduction - -From version 0.6.5 you are now able to `name` a container and `link` it -to another container by referring to its name. This will create a parent --> child relationship where the parent container can see selected -information about its child. - -## Container Naming - -You can now name your container by using the `--name` flag. If no name -is provided, Docker will automatically generate a name. You can see this -name using the `docker ps` command. - - # format is "sudo docker run --name " - $ sudo docker run --name test ubuntu /bin/bash - - # the flag "-a" Show all containers. Only running containers are shown by default. - $ sudo docker ps -a - CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES - 2522602a0d99 ubuntu:12.04 /bin/bash 14 seconds ago Exit 0 test - -## Links: service discovery for docker - -Links allow containers to discover and securely communicate with each -other by using the flag `--link name:alias`. Inter-container -communication can be disabled with the daemon flag `--icc=false`. With -this flag set to `false`, Container A cannot access Container B unless -explicitly allowed via a link. This is a huge win for securing your -containers. When two containers are linked together Docker creates a -parent child relationship between the containers. The parent container -will be able to access information via environment variables of the -child such as name, exposed ports, IP and other selected environment -variables. - -When linking two containers Docker will use the exposed ports of the -container to create a secure tunnel for the parent to access. If a -database container only exposes port 8080 then the linked container will -only be allowed to access port 8080 and nothing else if inter-container -communication is set to false. - -For example, there is an image called `crosbymichael/redis` that exposes -the port 6379 and starts the Redis server. Let's name the container as -`redis` based on that image and run it as daemon. - - $ sudo docker run -d --name redis crosbymichael/redis - -We can issue all the commands that you would expect using the name -`redis`; start, stop, attach, using the name for our container. The name -also allows us to link other containers into this one. - -Next, we can start a new web application that has a dependency on Redis -and apply a link to connect both containers. If you noticed when running -our Redis server we did not use the `-p` flag to publish the Redis port -to the host system. Redis exposed port 6379 and this is all we need to -establish a link. - - $ sudo docker run -t -i --link redis:db --name webapp ubuntu bash - -When you specified `--link redis:db` you are telling Docker to link the -container named `redis` into this new container with the alias `db`. -Environment variables are prefixed with the alias so that the parent -container can access network and environment information from the -containers that are linked into it. - -If we inspect the environment variables of the second container, we -would see all the information about the child container. - - $ root@4c01db0b339c:/# env - - HOSTNAME=4c01db0b339c - DB_NAME=/webapp/db - TERM=xterm - DB_PORT=tcp://172.17.0.8:6379 - DB_PORT_6379_TCP=tcp://172.17.0.8:6379 - DB_PORT_6379_TCP_PROTO=tcp - DB_PORT_6379_TCP_ADDR=172.17.0.8 - DB_PORT_6379_TCP_PORT=6379 - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - PWD=/ - SHLVL=1 - HOME=/ - container=lxc - _=/usr/bin/env - root@4c01db0b339c:/# - -Accessing the network information along with the environment of the -child container allows us to easily connect to the Redis service on the -specific IP and port in the environment. - -> **Note**: -> These Environment variables are only set for the first process in the -> container. Similarly, some daemons (such as `sshd`) -> will scrub them when spawning shells for connection. - -You can work around this by storing the initial `env` in a file, or -looking at `/proc/1/environ`. - -Running `docker ps` shows the 2 containers, and the `webapp/db` alias -name for the Redis container. - - $ docker ps - CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES - 4c01db0b339c ubuntu:12.04 bash 17 seconds ago Up 16 seconds webapp - d7886598dbe2 crosbymichael/redis:latest /redis-server --dir 33 minutes ago Up 33 minutes 6379/tcp redis,webapp/db - -## Resolving Links by Name - -> *Note:* New in version v0.11. - -Linked containers can be accessed by hostname. Hostnames are mapped by -appending entries to '/etc/hosts' using the linked container's alias. - -For example, linking a container using '--link redis:db' will generate -the following '/etc/hosts' file: - - root@6541a75d44a0:/# cat /etc/hosts - 172.17.0.3 6541a75d44a0 - 172.17.0.2 db - - 127.0.0.1 localhost - ::1 localhost ip6-localhost ip6-loopback - fe00::0 ip6-localnet - ff00::0 ip6-mcastprefix - ff02::1 ip6-allnodes - ff02::2 ip6-allrouters - root@6541a75d44a0:/# - -Using this mechanism, you can communicate with the linked container by -name: - - root@6541a75d44a0:/# echo PING | redis-cli -h db - PONG - root@6541a75d44a0:/# diff --git a/docs/sources/use/working_with_volumes.md b/docs/sources/use/working_with_volumes.md deleted file mode 100644 index 4c0a46ff1a..0000000000 --- a/docs/sources/use/working_with_volumes.md +++ /dev/null @@ -1,171 +0,0 @@ -page_title: Share Directories via Volumes -page_description: How to create and share volumes -page_keywords: Examples, Usage, volume, docker, documentation, examples - -# Share Directories via Volumes - -## Introduction - -A *data volume* is a specially-designated directory within one or more -containers that bypasses the [*Union File -System*](/terms/layer/#ufs-def) to provide several useful features for -persistent or shared data: - - - **Data volumes can be shared and reused between containers:** - This is the feature that makes data volumes so powerful. You can - use it for anything from hot database upgrades to custom backup or - replication tools. See the example below. - - **Changes to a data volume are made directly:** - Without the overhead of a copy-on-write mechanism. This is good for - very large files. - - **Changes to a data volume will not be included at the next commit:** - Because they are not recorded as regular filesystem changes in the - top layer of the [*Union File System*](/terms/layer/#ufs-def) - - **Volumes persist until no containers use them:** - As they are a reference counted resource. The container does not need to be - running to share its volumes, but running it can help protect it - against accidental removal via `docker rm`. - -Each container can have zero or more data volumes. - -## Getting Started - -Using data volumes is as simple as adding a `-v` parameter to the -`docker run` command. The `-v` parameter can be used more than once in -order to create more volumes within the new container. To create a new -container with two new volumes: - - $ docker run -v /var/volume1 -v /var/volume2 busybox true - -This command will create the new container with two new volumes that -exits instantly (`true` is pretty much the smallest, simplest program -that you can run). You can then mount its volumes in any other container -using the `run` `--volumes-from` option; irrespective of whether the -volume container is running or not. - -Or, you can use the `VOLUME` instruction in a `Dockerfile` to add one or -more new volumes to any container created from that image: - - # BUILD-USING: $ docker build -t data . - # RUN-USING: $ docker run --name DATA data - FROM busybox - VOLUME ["/var/volume1", "/var/volume2"] - CMD ["/bin/true"] - -### Creating and mounting a Data Volume Container - -If you have some persistent data that you want to share between -containers, or want to use from non-persistent containers, it's best to -create a named Data Volume Container, and then to mount the data from -it. - -Create a named container with volumes to share (`/var/volume1` and -`/var/volume2`): - - $ docker run -v /var/volume1 -v /var/volume2 --name DATA busybox true - -Then mount those data volumes into your application containers: - - $ docker run -t -i --rm --from DATA --name client1 ubuntu bash - -You can use multiple `-volumes-from` parameters to bring together -multiple data volumes from multiple containers. - -Interestingly, you can mount the volumes that came from the `DATA` -container in yet another container via the `client1` middleman -container: - - $ docker run -t -i --rm --volumes-from client1 --name client2 ubuntu bash - -This allows you to abstract the actual data source from users of that -data, similar to [*Ambassador Pattern Linking*]( -../ambassador_pattern_linking/#ambassador-pattern-linking). - -If you remove containers that mount volumes, including the initial DATA -container, or the middleman, the volumes will not be deleted until there -are no containers still referencing those volumes. This allows you to -upgrade, or effectively migrate data volumes between containers. - -### Mount a Host Directory as a Container Volume: - - -v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro]. - -You must specify an absolute path for `host-dir`. If `host-dir` is -missing from the command, then Docker creates a new volume. If -`host-dir` is present but points to a non-existent directory on the -host, Docker will automatically create this directory and use it as the -source of the bind-mount. - -Note that this is not available from a `Dockerfile` due the portability -and sharing purpose of it. The `host-dir` volumes are entirely -host-dependent and might not work on any other machine. - -For example: - - # Usage: - # sudo docker run [OPTIONS] -v /(dir. on host):/(dir. in container):(Read-Write or Read-Only) [ARG..] - # Example: - $ sudo docker run -i -t -v /var/log:/logs_from_host:ro ubuntu bash - -The command above mounts the host directory `/var/log` into the -container with *read only* permissions as `/logs_from_host`. - -New in version v0.5.0. - -### Note for OS/X users and remote daemon users: - -OS/X users run `boot2docker` to create a minimalist virtual machine -running the docker daemon. That virtual machine then launches docker -commands on behalf of the OS/X command line. The means that `host -directories` refer to directories in the `boot2docker` virtual machine, -not the OS/X filesystem. - -Similarly, anytime when the docker daemon is on a remote machine, the -`host directories` always refer to directories on the daemon's machine. - -### Backup, restore, or migrate data volumes - -You cannot back up volumes using `docker export`, `docker save` and -`docker cp` because they are external to images. Instead you can use -`--volumes-from` to start a new container that can access the -data-container's volume. For example: - - $ sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data - - - `-rm`: - remove the container when it exits - - `--volumes-from DATA`: - attach to the volumes shared by the `DATA` container - - `-v $(pwd):/backup`: - bind mount the current directory into the container; to write the tar file to - - `busybox`: - a small simpler image - good for quick maintenance - - `tar cvf /backup/backup.tar /data`: - creates an uncompressed tar file of all the files in the `/data` directory - -Then to restore to the same container, or another that you've made -elsewhere: - - # create a new data container - $ sudo docker run -v /data --name DATA2 busybox true - # untar the backup files into the new container᾿s data volume - $ sudo docker run --rm --volumes-from DATA2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar - data/ - data/sven.txt - # compare to the original container - $ sudo docker run --rm --volumes-from DATA -v `pwd`:/backup busybox ls /data - sven.txt - -You can use the basic techniques above to automate backup, migration and -restore testing using your preferred tools. - -## Known Issues - - - [Issue 2702](https://github.com/dotcloud/docker/issues/2702): - "lxc-start: Permission denied - failed to mount" could indicate a - permissions problem with AppArmor. Please see the issue for a - workaround. - - [Issue 2528](https://github.com/dotcloud/docker/issues/2528): the - busybox container is used to make the resulting container as small - and simple as possible - whenever you need to interact with the data - in the volume you mount it into another container. diff --git a/docs/sources/use/workingwithrepository.md b/docs/sources/use/workingwithrepository.md deleted file mode 100644 index 2b4ad613cc..0000000000 --- a/docs/sources/use/workingwithrepository.md +++ /dev/null @@ -1,251 +0,0 @@ -page_title: Share Images via Repositories -page_description: Repositories allow users to share images. -page_keywords: repo, repositories, usage, pull image, push image, image, documentation - -# Share Images via Repositories - -## Introduction - -Docker is not only a tool for creating and managing your own -[*containers*](/terms/container/#container-def) – **Docker is also a -tool for sharing**. A *repository* is a shareable collection of tagged -[*images*](/terms/image/#image-def) that together create the file -systems for containers. The repository's name is a label that indicates -the provenance of the repository, i.e. who created it and where the -original copy is located. - -You can find one or more repositories hosted on a *registry*. There are -two types of *registry*: public and private. There's also a default -*registry* that Docker uses which is called -[Docker.io](http://index.docker.io). -[Docker.io](http://index.docker.io) is the home of "top-level" -repositories and public "user" repositories. The Docker project -provides [Docker.io](http://index.docker.io) to host public and [private -repositories](https://index.docker.io/plans/), namespaced by user. We -provide user authentication and search over all the public repositories. - -Docker acts as a client for these services via the `docker search`, -`pull`, `login` and `push` commands. - -## Repositories - -### Local Repositories - -Docker images which have been created and labeled on your local Docker -server need to be pushed to a Public (by default they are pushed to -[Docker.io](http://index.docker.io)) or Private registry to be shared. - -### Public Repositories - -There are two types of public repositories: *top-level* repositories -which are controlled by the Docker team, and *user* repositories created -by individual contributors. Anyone can read from these repositories – -they really help people get started quickly! You could also use -[*Trusted Builds*](#trusted-builds) if you need to keep control of who -accesses your images. - -- Top-level repositories can easily be recognized by **not** having a - `/` (slash) in their name. These repositories represent trusted images - provided by the Docker team. -- User repositories always come in the form of `/`. - This is what your published images will look like if you push to the - public [Docker.io](http://index.docker.io) registry. -- Only the authenticated user can push to their *username* namespace on - a [Docker.io](http://index.docker.io) repository. -- User images are not curated, it is therefore up to you whether or not - you trust the creator of this image. - -### Private repositories - -You can also create private repositories on -[Docker.io](https://index.docker.io/plans/). These allow you to store -images that you don't want to share publicly. Only authenticated users -can push to private repositories. - -## Find Public Images on Docker.io - -You can search the [Docker.io](https://index.docker.io) registry or -using the command line interface. Searching can find images by name, -user name or description: - - $ sudo docker help search - Usage: docker search NAME - - Search the docker index for images - - --no-trunc=false: Don᾿t truncate output - $ sudo docker search centos - Found 25 results matching your query ("centos") - NAME DESCRIPTION - centos - slantview/centos-chef-solo CentOS 6.4 with chef-solo. - ... - -There you can see two example results: `centos` and -`slantview/centos-chef-solo`. The second result shows that it comes from -the public repository of a user, `slantview/`, while the first result -(`centos`) doesn't explicitly list a repository so it comes from the -trusted top-level namespace. The `/` character separates a user's -repository and the image name. - -Once you have found the image name, you can download it: - - # sudo docker pull - $ sudo docker pull centos - Pulling repository centos - 539c0211cd76: Download complete - -What can you do with that image? Check out the -[*Examples*](/examples/#example-list) and, when you're ready with your -own image, come back here to learn how to share it. - -## Contributing to Docker.io - -Anyone can pull public images from the -[Docker.io](http://index.docker.io) registry, but if you would like to -share one of your own images, then you must register a unique user name -first. You can create your username and login on -[Docker.io](https://index.docker.io/account/signup/), or by running - - $ sudo docker login - -This will prompt you for a username, which will become a public -namespace for your public repositories. - -If your username is available then `docker` will also prompt you to -enter a password and your e-mail address. It will then automatically log -you in. Now you're ready to commit and push your own images! - -> **Note:** -> Your authentication credentials will be stored in the [`.dockercfg` -> authentication file](#authentication-file). - -## Committing a Container to a Named Image - -When you make changes to an existing image, those changes get saved to a -container's file system. You can then promote that container to become -an image by making a `commit`. In addition to converting the container -to an image, this is also your opportunity to name the image, -specifically a name that includes your user name from -[Docker.io](http://index.docker.io) (as you did a `login` above) and a -meaningful name for the image. - - # format is "sudo docker commit /" - $ sudo docker commit $CONTAINER_ID myname/kickassapp - -## Pushing a repository to its registry - -In order to push an repository to its registry you need to have named an -image, or committed your container to a named image (see above) - -Now you can push this repository to the registry designated by its name -or tag. - - # format is "docker push /" - $ sudo docker push myname/kickassapp - -## Trusted Builds - -Trusted Builds automate the building and updating of images from GitHub -or BitBucket, directly on Docker.io. It works by adding a commit hook to -your selected repository, triggering a build and update when you push a -commit. - -### To setup a trusted build - -1. Create a [Docker.io account](https://index.docker.io/) and login. -2. Link your GitHub or BitBucket account through the [`Link Accounts`](https://index.docker.io/account/accounts/) menu. -3. [Configure a Trusted build](https://index.docker.io/builds/). -4. Pick a GitHub or BitBucket project that has a `Dockerfile` that you want to build. -5. Pick the branch you want to build (the default is the `master` branch). -6. Give the Trusted Build a name. -7. Assign an optional Docker tag to the Build. -8. Specify where the `Dockerfile` is located. The default is `/`. - -Once the Trusted Build is configured it will automatically trigger a -build, and in a few minutes, if there are no errors, you will see your -new trusted build on the [Docker.io](https://index.docker.io) Registry. -It will stay in sync with your GitHub and BitBucket repository until you -deactivate the Trusted Build. - -If you want to see the status of your Trusted Builds you can go to your -[Trusted Builds page](https://index.docker.io/builds/) on the Docker.io, -and it will show you the status of your builds, and the build history. - -Once you've created a Trusted Build you can deactivate or delete it. You -cannot however push to a Trusted Build with the `docker push` command. -You can only manage it by committing code to your GitHub or BitBucket -repository. - -You can create multiple Trusted Builds per repository and configure them -to point to specific `Dockerfile`'s or Git branches. - -## Private Registry - -Private registries are possible by hosting [your own -registry](https://github.com/dotcloud/docker-registry). - -> **Note**: -> You can also use private repositories on -> [Docker.io](https://index.docker.io/plans/). - -To push or pull to a repository on your own registry, you must prefix -the tag with the address of the registry's host (a `.` or `:` is used to -identify a host), like this: - - # Tag to create a repository with the full registry location. - # The location (e.g. localhost.localdomain:5000) becomes - # a permanent part of the repository name - $ sudo docker tag 0u812deadbeef localhost.localdomain:5000/repo_name - - # Push the new repository to its home location on localhost - $ sudo docker push localhost.localdomain:5000/repo_name - -Once a repository has your registry's host name as part of the tag, you -can push and pull it like any other repository, but it will **not** be -searchable (or indexed at all) on [Docker.io](http://index.docker.io), -and there will be no user name checking performed. Your registry will -function completely independently from the -[Docker.io](http://index.docker.io) registry. - - - -See also - -[Docker Blog: How to use your own registry]( -http://blog.docker.io/2013/07/how-to-use-your-own-registry/) - -## Authentication File - -The authentication is stored in a JSON file, `.dockercfg`, located in -your home directory. It supports multiple registry URLs. - -The `docker login` command will create the: - - [https://index.docker.io/v1/](https://index.docker.io/v1/) - -key. - -The `docker login https://my-registry.com` command will create the: - - [https://my-registry.com](https://my-registry.com) - -key. - -For example: - - { - "https://index.docker.io/v1/": { - "auth": "xXxXxXxXxXx=", - "email": "email@example.com" - }, - "https://my-registry.com": { - "auth": "XxXxXxXxXxX=", - "email": "email@my-registry.com" - } - } - -The `auth` field represents - - base64(:) - diff --git a/docs/sources/userguide/dockerimages.md b/docs/sources/userguide/dockerimages.md new file mode 100644 index 0000000000..1a69ab9aa6 --- /dev/null +++ b/docs/sources/userguide/dockerimages.md @@ -0,0 +1,397 @@ +page_title: Working with Docker Images +page_description: How to work with Docker images. +page_keywords: documentation, docs, the docker guide, docker guide, docker, docker platform, virtualization framework, docker.io, Docker images, Docker image, image management, Docker repos, Docker repositories, docker, docker tag, docker tags, Docker.io, collaboration + +# Working with Docker Images + +In the [introduction](/introduction/) we've discovered that Docker +images are the basis of containers. In the +[previous](/userguide/dockerizing/) [sections](/userguide/usingdocker/) +we've used Docker images that already exist, for example the `ubuntu` +image and the `training/webapp` image. + +We've also discovered that Docker stores downloaded images on the Docker +host. If an image isn't already present on the host then it'll be +downloaded from a registry: by default the +[Docker.io](https://index.docker.io) public registry. + +In this section we're going to explore Docker images a bit more +including: + +* Managing and working with images locally on your Docker host; +* Creating basic images; +* Uploading images to [Docker.io](https://index.docker.io). + +## Listing images on the host + +Let's start with listing the images we have locally on our host. You can +do this using the `docker images` command like so: + + $ sudo docker images + REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE + training/webapp latest fc77f57ad303 3 weeks ago 280.5 MB + ubuntu 13.10 5e019ab7bf6d 4 weeks ago 180 MB + ubuntu saucy 5e019ab7bf6d 4 weeks ago 180 MB + ubuntu 12.04 74fe38d11401 4 weeks ago 209.6 MB + ubuntu precise 74fe38d11401 4 weeks ago 209.6 MB + ubuntu 12.10 a7cf8ae4e998 4 weeks ago 171.3 MB + ubuntu quantal a7cf8ae4e998 4 weeks ago 171.3 MB + ubuntu 14.04 99ec81b80c55 4 weeks ago 266 MB + ubuntu latest 99ec81b80c55 4 weeks ago 266 MB + ubuntu trusty 99ec81b80c55 4 weeks ago 266 MB + ubuntu 13.04 316b678ddf48 4 weeks ago 169.4 MB + ubuntu raring 316b678ddf48 4 weeks ago 169.4 MB + ubuntu 10.04 3db9c44f4520 4 weeks ago 183 MB + ubuntu lucid 3db9c44f4520 4 weeks ago 183 MB + +We can see the images we've previously used in our [user guide](/userguide/). +Each has been downloaded from [Docker.io](https://index.docker.io) when we +launched a container using that image. + +We can see three crucial pieces of information about our images in the listing. + +* What repository they came from, for example `ubuntu`. +* The tags for each image, for example `14.04`. +* The image ID of each image. + +A repository potentially holds multiple variants of an image. In the case of +our `ubuntu` image we can see multiple variants covering Ubuntu 10.04, 12.04, +12.10, 13.04, 13.10 and 14.04. Each variant is identified by a tag and you can +refer to a tagged image like so: + + ubuntu:14.04 + +So when we run a container we refer to a tagged image like so: + + $ sudo docker run -t -i ubuntu:14.04 /bin/bash + +If instead we wanted to build an Ubuntu 12.04 image we'd use: + + $ sudo docker run -t -i ubuntu:12.04 /bin/bash + +If you don't specify a variant, for example you just use `ubuntu`, then Docker +will default to using the `ubunut:latest` image. + +> **Tip:** +> We recommend you always use a specific tagged image, for example +> `ubuntu:12.04`. That way you always know exactly what variant of an image is +> being used. + +## Getting a new image + +So how do we get new images? Well Docker will automatically download any image +we use that isn't already present on the Docker host. But this can potentially +add some time to the launch of a container. If we want to pre-load an image we +can download it using the `docker pull` command. Let's say we'd like to +download the `centos` image. + + $ sudo docker pull centos + Pulling repository centos + b7de3133ff98: Pulling dependent layers + 5cc9e91966f7: Pulling fs layer + 511136ea3c5a: Download complete + ef52fb1fe610: Download complete + . . . + +We can see that each layer of the image has been pulled down and now we +can run a container from this image and we won't have to wait to +download the image. + + $ sudo docker run -t -i centos /bin/bash + bash-4.1# + +## Finding images + +One of the features of Docker is that a lot of people have created Docker +images for a variety of purposes. Many of these have been uploaded to +[Docker.io](https://index.docker.io). We can search these images on the +[Docker.io](https://index.docker.io) website. + +![indexsearch](/userguide/search.png) + +We can also search for images on the command line using the `docker search` +command. Let's say our team wants an image with Ruby and Sinatra installed on +which to do our web application development. We can search for a suitable image +by using the `docker search` command to find all the images that contain the +term `sinatra`. + + $ sudo docker search sinatra + NAME DESCRIPTION STARS OFFICIAL TRUSTED + training/sinatra Sinatra training image 0 [OK] + marceldegraaf/sinatra Sinatra test app 0 + mattwarren/docker-sinatra-demo 0 [OK] + luisbebop/docker-sinatra-hello-world 0 [OK] + bmorearty/handson-sinatra handson-ruby + Sinatra for Hands on with D... 0 + subwiz/sinatra 0 + bmorearty/sinatra 0 + . . . + +We can see we've returned a lot of images that use the term `sinatra`. We've +returned a list of image names, descriptions, Stars (which measure the social +popularity of images - if a user likes an image then they can "star" it), and +the Official and Trusted statuses. Official repositories are XXX and Trusted +repositories are [Trusted Build](/userguide/dockerrepos/) that allow you to +validate the source and content of an image. + +We've reviewed the images available to use and we decided to use the +`training/sinatra` image. So far we've seen two types of images repositories, +images like `ubuntu`, which are called base or root images. These base images +are provided by Docker Inc and are built, validated and supported. These can be +identified by their single word names. + +We've also seen user images, for example the `training/sinatra` image we've +chosen. A user image belongs to a member of the Docker community and is built +and maintained by them. You can identify user images as they are always +prefixed with the user name, here `training`, of the user that created them. + +## Pulling our image + +We've identified a suitable image, `training/sinatra`, and now we can download it using the `docker pull` command. + + $ sudo docker pull training/sinatra + +The team can now use this image by run their own containers. + + $ sudo docker run -t -i training/sinatra /bin/bash + root@a8cb6ce02d85:/# + +## Creating our own images + +The team has found the `training/sinatra` image pretty useful but it's not quite what +they need and we need to make some changes to it. There are two ways we can +update and create images. + +1. We can update a container created from an image and commit the results to an image. +2. We can use a `Dockerfile` to specify instructions to create an image. + +### Updating and committing an image + +To update an image we first need to create a container from the image +we'd like to update. + + $ sudo docker run -t -i training/sinatra /bin/bash + root@0b2616b0e5a8:/# + +> **Note:** +> Take note of the container ID that has been created, `0b2616b0e5a8`, as we'll +> need it in a moment. + +Inside our running container let's add the `json` gem. + + root@0b2616b0e5a8:/# gem install json + +Once this has completed let's exit our container using the `exit` +command. + +Now we have a container with the change we want to make. We can then +commit a copy of this container to an image using the `docker commit` +command. + + $ sudo docker commit -m="Added json gem" -a="Kate Smith" \ + 0b2616b0e5a8 ouruser/sinatra:v2 + 4f177bd27a9ff0f6dc2a830403925b5360bfe0b93d476f7fc3231110e7f71b1c + +Here we've used the `docker commit` command. We've specified two flags: `-m` +and `-a`. The `-m` flag allows us to specify a commit message, much like you +would with a commit on a version control system. The `-a` flag allows us to +specify an author for our update. + +We've also specified the container we want to create this new image from, +`0b2616b0e5a8` (the ID we recorded earlier) and we've specified a target for +the image: + + ouruser/sinatra:v2 + +Let's break this target down. It consists of a new user, `ouruser`, that we're +writing this image to. We've also specified the name of the image, here we're +keeping the original image name `sinatra`. Finally we're specifying a tag for +the image: `v2`. + +We can then look at our new `ouruser/sinatra` image using the `docker images` +command. + + $ sudo docker images + REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE + training/sinatra latest 5bc342fa0b91 10 hours ago 446.7 MB + ouruser/sinatra v2 3c59e02ddd1a 10 hours ago 446.7 MB + ouruser/sinatra latest 5db5f8471261 10 hours ago 446.7 MB + +To use our new image to create a container we can then: + + $ sudo docker run -t -i ouruser/sinatra:v2 /bin/bash + root@78e82f680994:/# + +### Building an image from a `Dockerfile` + +Using the `docker commit` command is a pretty simple way of extending an image +but it's a bit cumbersome and it's not easy to share a development process for +images amongst a team. Instead we can use a new command, `docker build`, to +build new images from scratch. + +To do this we create a `Dockerfile` that contains a set of instructions that +tell Docker how to build our image. + +Let's create a directory and a `Dockerfile` first. + + $ mkdir sinatra + $ cd sinatra + $ touch Dockerfile + +Each instructions creates a new layer of the image. Let's look at a simple +example now for building our own Sinatra image for our development team. + + # This is a comment + FROM ubuntu:14.04 + MAINTAINER Kate Smith + RUN apt-get -qq update + RUN apt-get -qqy install ruby ruby-dev + RUN gem install sinatra + +Let's look at what our `Dockerfile` does. Each instruction prefixes a statement and is capitalized. + + INSTRUCTION statement + +> **Note:** +> We use `#` to indicate a comment + +The first instruction `FROM` tells Docker what the source of our image is, in +this case we're basing our new image on an Ubuntu 14.04 image. + +Next we use the `MAINTAINER` instruction to specify who maintains our new image. + +Lastly, we've specified three `RUN` instructions. A `RUN` instruction executes +a command inside the image, for example installing a package. Here we're +updating our APT cache, installing Ruby and RubyGems and then installing the +Sinatra gem. + +> **Note:** +> There are [a lot more instructions available to us in a Dockerfile](/reference/builder). + +Now let's take our `Dockerfile` and use the `docker build` command to build an image. + + $ sudo docker build -t="ouruser/sinatra:v2" . + Uploading context 2.56 kB + Uploading context + Step 0 : FROM ubuntu:14.04 + ---> 99ec81b80c55 + Step 1 : MAINTAINER Kate Smith + ---> Running in 7c5664a8a0c1 + ---> 2fa8ca4e2a13 + Removing intermediate container 7c5664a8a0c1 + Step 2 : RUN apt-get -qq update + ---> Running in b07cc3fb4256 + ---> 50d21070ec0c + Removing intermediate container b07cc3fb4256 + Step 3 : RUN apt-get -qqy install ruby ruby-dev + ---> Running in a5b038dd127e + Selecting previously unselected package libasan0:amd64. + (Reading database ... 11518 files and directories currently installed.) + Preparing to unpack .../libasan0_4.8.2-19ubuntu1_amd64.deb ... + . . . + Setting up ruby (1:1.9.3.4) ... + Setting up ruby1.9.1 (1.9.3.484-2ubuntu1) ... + Processing triggers for libc-bin (2.19-0ubuntu6) ... + ---> 2acb20f17878 + Removing intermediate container a5b038dd127e + Step 4 : RUN gem install sinatra + ---> Running in 5e9d0065c1f7 + . . . + Successfully installed rack-protection-1.5.3 + Successfully installed sinatra-1.4.5 + 4 gems installed + ---> 324104cde6ad + Removing intermediate container 5e9d0065c1f7 + Successfully built 324104cde6ad + +We've specified our `docker build` command and used the `-t` flag to identify +our new image as belonging to the user `ouruser`, the repository name `sinatra` +and given it the tag `v2`. + +We've also specified the location of our `Dockerfile` using the `.` to +indicate a `Dockerfile` in the current directory. + +> **Note::** +> You can also specify a path to a `Dockerfile`. + +Now we can see the build process at work. The first thing Docker does is +upload the build context: basically the contents of the directory you're +building in. This is done because the Docker daemon does the actual +build of the image and it needs the local context to do it. + +Next we can see each instruction in the `Dockerfile` being executed +step-by-step. We can see that each step creates a new container, runs +the instruction inside that container and then commits that change - +just like the `docker commit` work flow we saw earlier. When all the +instructions have executed we're left with the `324104cde6ad` image +(also helpfully tagged as `ouruser/sinatra:v2`) and all intermediate +containers will get removed to clean things up. + +We can then create a container from our new image. + + $ sudo docker run -t -i ouruser/sinatra /bin/bash + root@8196968dac35:/# + +> **Note:** +> This is just the briefest introduction to creating images. We've +> skipped a whole bunch of other instructions that you can use. We'll see more of +> those instructions in later sections of the Guide or you can refer to the +> [`Dockerfile`](/reference/builder/) reference for a +> detailed description and examples of every instruction. + +## Setting tags on an image + +You can also add a tag to an existing image after you commit or build it. We +can do this using the `docker tag` command. Let's add a new tag to our +`ouruser/sinatra` image. + + $ sudo docker tag 5db5f8471261 ouruser/sinatra:devel + +The `docker tag` command takes the ID of the image, here `5db5f8471261`, and our +user name, the repository name and the new tag. + +Let's see our new tag using the `docker images` command. + + $ sudo docker images ouruser/sinatra + REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE + ouruser/sinatra latest 5db5f8471261 11 hours ago 446.7 MB + ouruser/sinatra devel 5db5f8471261 11 hours ago 446.7 MB + ouruser/sinatra v2 5db5f8471261 11 hours ago 446.7 MB + +## Push an image to Docker.io + +Once you've built or created a new image you can push it to [Docker.io]( +https://index.docker.io) using the `docker push` command. This allows you to +share it with others, either publicly, or push it into [a private +repository](https://index.docker.io/plans/). + + $ sudo docker push ouruser/sinatra + The push refers to a repository [ouruser/sinatra] (len: 1) + Sending image list + Pushing repository ouruser/sinatra (3 tags) + . . . + +## Remove an image from the host + +You can also remove images on your Docker host in a way [similar to +containers]( +/userguide/usingdocker) using the `docker rmi` command. + +Let's delete the `training/sinatra` image as we don't need it anymore. + + $ docker rmi training/sinatra + Untagged: training/sinatra:latest + Deleted: 5bc342fa0b91cabf65246837015197eecfa24b2213ed6a51a8974ae250fedd8d + Deleted: ed0fffdcdae5eb2c3a55549857a8be7fc8bc4241fb19ad714364cbfd7a56b22f + Deleted: 5c58979d73ae448df5af1d8142436d81116187a7633082650549c52c3a2418f0 + +> **Note:** In order to remove an image from the host, please make sure +> that there are no containers actively based on it. + +# Next steps + +Until now we've seen how to build individual applications inside Docker +containers. Now learn how to build whole application stacks with Docker +by linking together multiple Docker containers. + +Go to [Linking Containers Together](/userguide/dockerlinks). + diff --git a/docs/sources/userguide/dockerio.md b/docs/sources/userguide/dockerio.md new file mode 100644 index 0000000000..e5c6c6dace --- /dev/null +++ b/docs/sources/userguide/dockerio.md @@ -0,0 +1,73 @@ +page_title: Getting started with Docker.io +page_description: Introductory guide to getting an account on Docker.io +page_keywords: documentation, docs, the docker guide, docker guide, docker, docker platform, virtualization framework, docker.io, central service, services, how to, container, containers, automation, collaboration, collaborators, registry, repo, repository, technology, github webhooks, trusted builds + +# Getting Started with Docker.io + +*How do I use Docker.io?* + +In this section we're going to introduce you, very quickly!, to +[Docker.io](https://index.docker.io) and create an account. + +[Docker.io](https://www.docker.io) is the central hub for Docker. It +helps you to manage Docker and its components. It provides services such +as: + +* Hosting images. +* User authentication. +* Automated image builds and work flow tools like build triggers and web + hooks. +* Integration with GitHub and BitBucket. + +Docker.io helps you collaborate with colleagues and get the most out of +Docker. + +In order to use Docker.io you will need to register an account. Don't +panic! It's totally free and really easy. + +## Creating a Docker.io Account + +There are two ways you can create a Docker.io account: + +* Via the web, or +* Via the command line. + +### Sign up via the web! + +Fill in the [sign-up form](https://www.docker.io/account/signup/) and +choose your user name and specify some details such as an email address. + +![Register using the sign-up page](/userguide/register-web.png) + +### Signup via the command line + +You can also create a Docker.io account via the command line using the +`docker login` command. + + $ sudo docker login + +### Confirm your email + +Once you've filled in the form then check your email for a welcome +message and activate your account. + +![Confirm your registration](/userguide/register-confirm.png) + +### Login! + +Then you can login using the web console: + +![Login using the web console](/userguide/login-web.png) + +Or via the command line and the `docker login` command: + + $ sudo docker login + +Now your Docker.io account is active and ready for you to use! + +## Next steps + +Now let's start Dockerizing applications with our "Hello World!" exercise. + +Go to [Dockerizing Applications](/userguide/dockerizing). + diff --git a/docs/sources/userguide/dockerizing.md b/docs/sources/userguide/dockerizing.md new file mode 100644 index 0000000000..79a2066c62 --- /dev/null +++ b/docs/sources/userguide/dockerizing.md @@ -0,0 +1,193 @@ +page_title: Dockerizing Applications: A "Hello World!" +page_description: A simple "Hello World!" exercise that introduced you to Docker. +page_keywords: docker guide, docker, docker platform, virtualization framework, how to, dockerize, dockerizing apps, dockerizing applications, container, containers + +# Dockerizing Applications: A "Hello World!" + +*So what's this Docker thing all about?* + +Docker allows you to run applications inside containers. Running an +application inside a container takes a single command: `docker run`. + +## Hello World! + +Let's try it now. + + $ sudo docker run ubuntu:14.04 /bin/echo "Hello World!" + Hello World! + +And you just launched your first container! + +So what just happened? Let's step through what the `docker run` command +did. + +First we specified the `docker` binary and the command we wanted to +execute, `run`. The `docker run` combination *runs* containers. + +Next we specified an image: `ubuntu:14.04`. This is the source of the container +we ran. Docker calls this an image. In this case we used an Ubuntu 14.04 +operating system image. + +When you specify an image, Docker looks first for the image on your +Docker host. If it can't find it then it downloads the image from the public +image registry: [Docker.io](https://index.docker.io). + +Next we told Docker what command to run inside our new container: + + /bin/echo "Hello World!" + +When our container was launched Docker created a new Ubuntu 14.04 +environment and then executed the `/bin/echo` command inside it. We saw +the result on the command line: + + Hello World! + +So what happened to our container after that? Well Docker containers +only run as long as the command you specify is active. Here, as soon as +`Hello World!` was echoed, the container stopped. + +## An Interactive Container + +Let's try the `docker run` command again, this time specifying a new +command to run in our container. + + $ sudo docker run -t -i ubuntu:14.04 /bin/bash + root@af8bae53bdd3:/# + +Here we've again specified the `docker run` command and launched an +`ubuntu:14.04` image. But we've also passed in two flags: `-t` and `-i`. +The `-t` flag assigns a pseudo-tty or terminal inside our new container +and the `-i` flag allows us to make an interactive connection by +grabbing the standard in (`STDIN`) of the container. + +We've also specified a new command for our container to run: +`/bin/bash`. This will launch a Bash shell inside our container. + +So now when our container is launched we can see that we've got a +command prompt inside it: + + root@af8bae53bdd3:/# + +Let's try running some commands inside our container: + + root@af8bae53bdd3:/# pwd + / + root@af8bae53bdd3:/# ls + bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var + +You can see we've run the `pwd` to show our current directory and can +see we're in the `/` root directory. We've also done a directory listing +of the root directory which shows us what looks like a typical Linux +file system. + +You can play around inside this container and when you're done you can +use the `exit` command to finish. + + root@af8bae53bdd3:/# exit + +As with our previous container, once the Bash shell process has +finished, the container is stopped. + +## A Daemonized Hello World! + +Now a container that runs a command and then exits has some uses but +it's not overly helpful. Let's create a container that runs as a daemon, +like most of the applications we're probably going to run with Docker. + +Again we can do this with the `docker run` command: + + $ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" + 1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147 + +Wait what? Where's our "Hello World!" Let's look at what we've run here. +It should look pretty familiar. We ran `docker run` but this time we +specified a flag: `-d`. The `-d` flag tells Docker to run the container +and put it in the background, to daemonize it. + +We also specified the same image: `ubuntu:14.04`. + +Finally, we specified a command to run: + + /bin/sh -c "while true; do echo hello world; sleep 1; done" + +This is the (hello) world's silliest daemon: a shell script that echoes +`hello world` forever. + +So why aren't we seeing any `hello world`'s? Instead Docker has returned +a really long string: + + 1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147 + +This really long string is called a *container ID*. It uniquely +identifies a container so we can work with it. + +> **Note:** +> The container ID is a bit long and unwieldy and a bit later +> on we'll see a shorter ID and some ways to name our containers to make +> working with them easier. + +We can use this container ID to see what's happening with our `hello +world` daemon. + +Firstly let's make sure our container is running. We can +do that with the `docker ps` command. The `docker ps` command queries +the Docker daemon for information about all the container it knows +about. + + $ docker ps + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + 1e5535038e28 ubuntu:14.04 /bin/sh -c 'while tr 2 minutes ago Up 1 minute insane_babbage + +Here we can see our daemonized container. The `docker ps` has returned some useful +information about it, starting with a shorter variant of its container ID: +`1e5535038e28`. + +We can also see the image we used to build it, `ubuntu:14.04`, the command it +is running, its status and an automatically assigned name, +`insane_babbage`. + +> **NoteL** +> Docker automatically names any containers you start, a +> little later on we'll see how you can specify your own names. + +Okay, so we now know it's running. But is it doing what we asked it to do? To see this +we're going to look inside the container using the `docker logs` +command. Let's use the container name Docker assigned. + + $ sudo docker logs insane_babbage + hello world + hello world + hello world + . . . + +The `docker logs` command looks inside the container and returns its standard +output: in this case the output of our command `hello world`. + +Awesome! Our daemon is working and we've just created our first +Dockerized application! + +Now we've established we can create our own containers let's tidy up +after ourselves and stop our daemonized container. To do this we use the +`docker stop` command. + + $ sudo docker stop insane_babbage + insane_babbage + +The `docker stop` command tells Docker to politely stop the running +container. If it succeeds it will return the name of the container it +has just stopped. + +Let's check it worked with the `docker ps` command. + + $ docker ps + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + +Excellent. Our container has been stopped. + +# Next steps + +Now we've seen how simple it is to get started with Docker let's learn how to +do some more advanced tasks. + +Go to [Working With Containers](/userguide/usingdocker). + diff --git a/docs/sources/userguide/dockerlinks.md b/docs/sources/userguide/dockerlinks.md new file mode 100644 index 0000000000..5c94879bf0 --- /dev/null +++ b/docs/sources/userguide/dockerlinks.md @@ -0,0 +1,241 @@ +page_title: Linking Containers Together +page_description: Learn how to connect Docker containers together. +page_keywords: Examples, Usage, user guide, links, linking, docker, documentation, examples, names, name, container naming, port, map, network port, network + +# Linking Containers Together + +In [the Using Docker section](/userguide/usingdocker) we touched on +connecting to a service running inside a Docker container via a network +port. This is one of the ways that you can interact with services and +applications running inside Docker containers. In this section we're +going to give you a refresher on connecting to a Docker container via a +network port as well as introduce you to the concepts of container +linking. + +## Network port mapping refresher + +In [the Using Docker section](/userguide/usingdocker) we created a +container that ran a Python Flask application. + + $ sudo docker run -d -P training/webapp python app.py + +> **Note:** +> Containers have an internal network and an IP address +> (remember we used the `docker inspect` command to show the container's +> IP address in the [Using Docker](/userguide/usingdocker/) section). +> Docker can have a variety of network configurations. You can see more +> information on Docker networking [here](/articles/networking/). + +When we created that container we used the `-P` flag to automatically map any +network ports inside that container to a random high port from the range 49000 +to 49900 on our Docker host. When we subsequently ran `docker ps` we saw that +port 5000 was bound to port 49155. + + $ sudo docker ps nostalgic_morse + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse + +We also saw how we can bind a container's ports to a specific port using +the `-p` flag. + + $ sudo docker run -d -p 5000:5000 training/webapp python app.py + +And we saw why this isn't such a great idea because it constrains us to +only one container on that specific port. + +There are also a few other ways we can configure the `-p` flag. By +default the `-p` flag will bind the specified port to all interfaces on +the host machine. But we can also specify a binding to a specific +interface, for example only to the `localhost`. + + $ sudo docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py + +This would bind port 5000 inside the container to port 5000 on the +`localhost` or `127.0.0.1` interface on the host machine. + +Or to bind port 5000 of the container to a dynamic port but only on the +`localhost` we could: + + $ sudo docker run -d -p 127.0.0.1::5000 training/webapp python app.py + +We can also bind UDP ports by adding a trailing `/udp`, for example: + + $ sudo docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py + +We also saw the useful `docker port` shortcut which showed us the +current port bindings, this is also useful for showing us specific port +configurations. For example if we've bound the container port to the +`localhost` on the host machine this will be shown in the `docker port` +output. + + $ docker port nostalgic_morse + 127.0.0.1:49155 + +> **Note:** +> The `-p` flag can be used multiple times to configure multiple ports. + +## Docker Container Linking + +Network port mappings are not the only way Docker containers can connect +to one another. Docker also has a linking system that allows you to link +multiple containers together and share connection information between +them. Docker linking will create a parent child relationship where the +parent container can see selected information about its child. + +## Container naming + +To perform this linking Docker relies on the names of your containers. +We've already seen that each container we create has an automatically +created name, indeed we've become familiar with our old friend +`nostalgic_morse` during this guide. You can also name containers +yourself. This naming provides two useful functions: + +1. It's useful to name containers that do specific functions in a way + that makes it easier for you to remember them, for example naming a + container with a web application in it `web`. + +2. It provides Docker with reference point that allows it to refer to other + containers, for example link container `web` to container `db`. + +You can name your container by using the `--name` flag, for example: + + $ sudo docker run -d -P --name web training/webapp python app.py + +You can see we've launched a new container and used the `--name` flag to +call the container `web`. We can see the container's name using the +`docker ps` command. + + $ sudo docker ps -l + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + aed84ee21bde training/webapp:latest python app.py 12 hours ago Up 2 seconds 0.0.0.0:49154->5000/tcp web + +We can also use `docker inspect` to return the container's name. + + $ sudo docker inspect -f "{{ .Name }}" aed84ee21bde + /web + +> **Note:** +> Container names have to be unique. That means you can only call +> one container `web`. If you want to re-use a container name you must delete the +> old container with the `docker rm` command before you can create a new +> container with the same name. As an alternative you can use the `--rm` +> flag with the `docker run` command. This will delete the container +> immediately after it stops. + +## Container Linking + +Links allow containers to discover and securely communicate with each +other. To create a link you use the `--link` flag. Let's create a new +container, this one a database. + + $ sudo docker run -d --name db training/postgres + +Here we've created a new container called `db` using the `training/postgres` +image, which contains a PostgreSQL database. + +Now let's create a new `web` container and link it with our `db` container. + + $ sudo docker run -d -P --name web --link db:db training/webapp python app.py + +This will link the new `web` container with the `db` container we created +earlier. The `--link` flag takes the form: + + --link name:alias + +Where `name` is the name of the container we're linking to and `alias` is an +alias for the link name. We'll see how that alias gets used shortly. + +Let's look at our linked containers using `docker ps`. + + $ docker ps + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + 349169744e49 training/postgres:latest su postgres -c '/usr About a minute ago Up About a minute 5432/tcp db + aed84ee21bde training/webapp:latest python app.py 16 hours ago Up 2 minutes 0.0.0.0:49154->5000/tcp db/web,web + +We can see our named containers, `db` and `web`, and we can see that the `web` +containers also shows `db/web` in the `NAMES` column. This tells us that the +`web` container is linked to the `db` container in a parent/child relationship. + +So what does linking the containers do? Well we've discovered the link creates +a parent-child relationship between the two containers. The parent container, +here `db`, can access information on the child container `web`. To do this +Docker creates a secure tunnel between the containers without the need to +expose any ports externally on the container. You'll note when we started the +`db` container we did not use either of the `-P` or `-p` flags. As we're +linking the containers we don't need to expose the PostgreSQL database via the +network. + +Docker exposes connectivity information for the parent container inside the +child container in two ways: + +* Environment variables, +* Updating the `/etc/host` file. + +Let's look first at the environment variables Docker sets. Inside the `web` +container let's run the `env` command to list the container's environment +variables. + + root@aed84ee21bde:/opt/webapp# env + HOSTNAME=aed84ee21bde + . . . + DB_NAME=/web/db + DB_PORT=tcp://172.17.0.5:5432 + DB_PORT_5000_TCP=tcp://172.17.0.5:5432 + DB_PORT_5000_TCP_PROTO=tcp + DB_PORT_5000_TCP_PORT=5432 + DB_PORT_5000_TCP_ADDR=172.17.0.5 + . . . + +> **Note**: +> These Environment variables are only set for the first process in the +> container. Similarly, some daemons (such as `sshd`) +> will scrub them when spawning shells for connection. + +We can see that Docker has created a series of environment variables with +useful information about our `db` container. Each variables is prefixed with +`DB` which is populated from the `alias` we specified above. If our `alias` +were `db1` the variables would be prefixed with `DB1_`. You can use these +environment variables to configure your applications to connect to the database +on the `db` container. The connection will be secure, private and only the +linked `web` container will be able to talk to the `db` container. + +In addition to the environment variables Docker adds a host entry for the +linked parent to the `/etc/hosts` file. Let's look at this file on the `web` +container now. + + root@aed84ee21bde:/opt/webapp# cat /etc/hosts + 172.17.0.7 aed84ee21bde + . . . + 172.17.0.5 db + +We can see two relevant host entries. The first is an entry for the `web` +container that uses the Container ID as a host name. The second entry uses the +link alias to reference the IP address of the `db` container. Let's try to ping +that host now via this host name. + + root@aed84ee21bde:/opt/webapp# apt-get install -yqq inetutils-ping + root@aed84ee21bde:/opt/webapp# ping db + PING db (172.17.0.5): 48 data bytes + 56 bytes from 172.17.0.5: icmp_seq=0 ttl=64 time=0.267 ms + 56 bytes from 172.17.0.5: icmp_seq=1 ttl=64 time=0.250 ms + 56 bytes from 172.17.0.5: icmp_seq=2 ttl=64 time=0.256 ms + +> **Note:** +> We had to install `ping` because our container didn't have it. + +We've used the `ping` command to ping the `db` container using it's host entry +which resolves to `172.17.0.5`. We can make use of this host entry to configure +an application to make use of our `db` container. + +> **Note:** +> You can link multiple child containers to a single parent. For +> example, we could have multiple web containers attached to our `db` +> container. + +# Next step + +Now we know how to link Docker containers together the next step is +learning how to manage data, volumes and mounts inside our containers. + +Go to [Managing Data in Containers](/userguide/dockervolumes). + diff --git a/docs/sources/userguide/dockerrepos.md b/docs/sources/userguide/dockerrepos.md new file mode 100644 index 0000000000..d18ec13ccd --- /dev/null +++ b/docs/sources/userguide/dockerrepos.md @@ -0,0 +1,176 @@ +page_title: Working with Docker.io +page_description: Learning how to use Docker.io to manage images and work flow +page_keywords: repo, Docker.io, Docker Hub, registry, index, repositories, usage, pull image, push image, image, documentation + +# Working with Docker.io + +So far we've seen a lot about how to use Docker on the command line and +your local host. We've seen [how to pull down +images](/userguide/usingdocker/) that you can run your containers from +and we've seen how to [create your own images](/userguide/dockerimages). + +Now we're going to learn a bit more about +[Docker.io](https://index.docker.io) and how you can use it to enhance +your Docker work flows. + +[Docker.io](https://index.docker.io) is the public registry that Docker +Inc maintains. It contains a huge collection of images, over 15,000, +that you can download and use to build your containers. It also provides +authentication, structure (you can setup teams and organizations), work +flow tools like webhooks and build triggers as well as privacy features +like private repositories for storing images you don't want to publicly +share. + +## Docker commands and Docker.io + +Docker acts as a client for these services via the `docker search`, +`pull`, `login` and `push` commands. + +## Searching for images + +As we've already seen we can search the +[Docker.io](https://index.docker.io) registry via it's search interface +or using the command line interface. Searching can find images by name, +user name or description: + + $ sudo docker search centos + NAME DESCRIPTION STARS OFFICIAL TRUSTED + centos Official CentOS 6 Image as of 12 April 2014 88 + tianon/centos CentOS 5 and 6, created using rinse instea... 21 + ... + +There you can see two example results: `centos` and +`tianon/centos`. The second result shows that it comes from +the public repository of a user, `tianon/`, while the first result, +`centos`, doesn't explicitly list a repository so it comes from the +trusted top-level namespace. The `/` character separates a user's +repository and the image name. + +Once you have found the image you want, you can download it: + + $ sudo docker pull centos + Pulling repository centos + 0b443ba03958: Download complete + 539c0211cd76: Download complete + 511136ea3c5a: Download complete + 7064731afe90: Download complete + +The image is now available to run a container from. + +## Contributing to Docker.io + +Anyone can pull public images from the [Docker.io](http://index.docker.io) +registry, but if you would like to share your own images, then you must +register a user first as we saw in the [first section of the Docker User +Guide](/userguide/dockerio/). + +To refresh your memory, you can create your user name and login to +[Docker.io](https://index.docker.io/account/signup/), or by running: + + $ sudo docker login + +This will prompt you for a user name, which will become a public +namespace for your public repositories, for example: + + training/webapp + +Here `training` is the user name and `webapp` is a repository owned by +that user. + +If your user name is available then `docker` will also prompt you to +enter a password and your e-mail address. It will then automatically log +you in. Now you're ready to commit and push your own images! + +> **Note:** +> Your authentication credentials will be stored in the [`.dockercfg` +> authentication file](#authentication-file) in your home directory. + +## Pushing a repository to Docker.io + +In order to push an repository to its registry you need to have named an image, +or committed your container to a named image as we saw +[here](/userguide/dockerimages). + +Now you can push this repository to the registry designated by its name +or tag. + + $ sudo docker push yourname/newimage + +The image will then be uploaded and available for use. + +## Features of Docker.io + +Now let's look at some of the features of Docker.io. You can find more +information [here](/docker-io/). + +* Private repositories +* Organizations and teams +* Automated Builds +* Webhooks + +## Private Repositories + +Sometimes you have images you don't want to make public and share with +everyone. So Docker.io allows you to have private repositories. You can +sign up for a plan [here](https://index.docker.io/plans/). + +## Organizations and teams + +One of the useful aspects of private repositories is that you can share +them only with members of your organization or team. Docker.io lets you +create organizations where you can collaborate with your colleagues and +manage private repositories. You can create and manage an organization +[here](https://index.docker.io/account/organizations/). + +## Automated Builds + +Automated Builds automate the building and updating of images from [GitHub](https://www.github.com) +or [BitBucket](http://bitbucket.com), directly on Docker.io. It works by adding a commit hook to +your selected GitHub or BitBucket repository, triggering a build and update when you push a +commit. + +### To setup an Automated Build + +1. Create a [Docker.io account](https://index.docker.io/) and login. +2. Link your GitHub or BitBucket account through the [`Link Accounts`](https://index.docker.io/account/accounts/) menu. +3. [Configure an Automated Build](https://index.docker.io/builds/). +4. Pick a GitHub or BitBucket project that has a `Dockerfile` that you want to build. +5. Pick the branch you want to build (the default is the `master` branch). +6. Give the Automated Build a name. +7. Assign an optional Docker tag to the Build. +8. Specify where the `Dockerfile` is located. The default is `/`. + +Once the Automated Build is configured it will automatically trigger a +build, and in a few minutes, if there are no errors, you will see your +new Automated Build on the [Docker.io](https://index.docker.io) Registry. +It will stay in sync with your GitHub and BitBucket repository until you +deactivate the Automated Build. + +If you want to see the status of your Automated Builds you can go to your +[Automated Builds page](https://index.docker.io/builds/) on the Docker.io, +and it will show you the status of your builds, and the build history. + +Once you've created an Automated Build you can deactivate or delete it. You +cannot however push to an Automated Build with the `docker push` command. +You can only manage it by committing code to your GitHub or BitBucket +repository. + +You can create multiple Automated Builds per repository and configure them +to point to specific `Dockerfile`'s or Git branches. + +### Build Triggers + +Automated Builds can also be triggered via a URL on Docker.io. This +allows you to rebuild an Automated build image on demand. + +## Webhooks + +Webhooks are attached to your repositories and allow you to trigger an +event when an image or updated image is pushed to the repository. With +a webhook you can specify a target URL and a JSON payload will be +delivered when the image is pushed. + +## Next steps + +Go and use Docker! + diff --git a/docs/sources/userguide/dockervolumes.md b/docs/sources/userguide/dockervolumes.md new file mode 100644 index 0000000000..34cfe05b47 --- /dev/null +++ b/docs/sources/userguide/dockervolumes.md @@ -0,0 +1,142 @@ +page_title: Managing Data in Containers +page_description: How to manage data inside your Docker containers. +page_keywords: Examples, Usage, volume, docker, documentation, user guide, data, volumes + +# Managing Data in Containers + +So far we've been introduced some [basic Docker +concepts](/userguide/usingdocker/), seen how to work with [Docker +images](/userguide/dockerimages/) as well as learned about [networking +and links between containers](/userguide/dockerlinks/). In this section +we're going to discuss how you can manage data inside and between your +Docker containers. + +We're going to look at the two primary ways you can manage data in +Docker. + +* Data volumes, and +* Data volume containers. + +## Data volumes + +A *data volume* is a specially-designated directory within one or more +containers that bypasses the [*Union File +System*](/terms/layer/#ufs-def) to provide several useful features for +persistent or shared data: + +- Data volumes can be shared and reused between containers +- Changes to a data volume are made directly +- Changes to a data volume will not be included when you update an image +- Volumes persist until no containers use them + +### Adding a data volume + +You can add a data volume to a container using the `-v` flag with the +`docker run` command. You can use the `-v` multiple times in a single +`docker run` to mount multiple data volumes. Let's mount a single volume +now in our web application container. + + $ sudo docker run -d -P --name web -v /webapp training/webapp python app.py + +This will create a new volume inside a container at `/webapp`. + +> **Note:** +> You can also use the `VOLUME` instruction in a `Dockerfile` to add one or +> more new volumes to any container created from that image. + +### Mount a Host Directory as a Data Volume + +In addition to creating a volume using the `-v` flag you can also mount a +directory from your own host into a container. + + $ sudo docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py + +This will mount the local directory, `/src/webapp`, into the container as the +`/opt/webapp` directory. This is very useful for testing, for example we can +mount our source code inside the container and see our application at work as +we change the source code. The directory on the host must be specified as an +absolute path and if the directory doesn't exist Docker will automatically +create it for you. + +> **Note::** +> This is not available from a `Dockerfile` due the portability +> and sharing purpose of it. As the host directory is, by its nature, +> host-dependent it might not work all hosts. + +Docker defaults to a read-write volume but we can also mount a directory +read-only. + + $ sudo docker run -d -P --name web -v /src/webapp:/opt/webapp:ro training/webapp python app.py + +Here we've mounted the same `/src/webapp` directory but we've added the `ro` +option to specify that the mount should be read-only. + +## Creating and mounting a Data Volume Container + +If you have some persistent data that you want to share between +containers, or want to use from non-persistent containers, it's best to +create a named Data Volume Container, and then to mount the data from +it. + +Let's create a new named container with a volume to share. + + $ docker run -d -v /dbdata --name dbdata training/postgres + +You can then use the `--volumes-from` flag to mount the `/dbdata` volume in another container. + + $ docker run -d --volumes-from dbdata --name db1 training/postgres + +And another: + + $ docker run -d --volumes-from dbdata --name db2 training/postgres + +You can use multiple `-volumes-from` parameters to bring together multiple data +volumes from multiple containers. + +You can also extend the chain by mounting the volume that came from the +`dbdata` container in yet another container via the `db1` or `db2` containers. + + $ docker run -d --name db3 --volumes-from db1 training/postgres + +If you remove containers that mount volumes, including the initial `dbdata` +container, or the subsequent containers `db1` and `db2`, the volumes will not +be deleted until there are no containers still referencing those volumes. This +allows you to upgrade, or effectively migrate data volumes between containers. + +## Backup, restore, or migrate data volumes + +Another useful function we can perform with volumes is use them for +backups, restores or migrations. We do this by using the +`--volumes-from` flag to create a new container that mounts that volume, +like so: + + $ sudo docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata + +Here's we've launched a new container and mounted the volume from the +`dbdata` container. We've then mounted a local host directory as +`/backup`. Finally, we've passed a command that uses `tar` to backup the +contents of the `dbdata` volume to a `backup.tar` file inside our +`/backup` directory. When the command completes and the container stops +we'll be left with a backup of our `dbdata` volume. + +You could then to restore to the same container, or another that you've made +elsewhere. Create a new container. + + $ sudo docker run -v /dbdata --name dbdata2 ubuntu + +Then un-tar the backup file in the new container's data volume. + + $ sudo docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar + +You can use this techniques above to automate backup, migration and +restore testing using your preferred tools. + +# Next steps + +Now we've learned a bit more about how to use Docker we're going to see how to +combine Docker with the services available on +[Docker.io](https://index.docker.io) including Automated Builds and private +repositories. + +Go to [Working with Docker.io](/userguide/dockerrepos). + diff --git a/docs/sources/userguide/index.md b/docs/sources/userguide/index.md new file mode 100644 index 0000000000..7f703b6854 --- /dev/null +++ b/docs/sources/userguide/index.md @@ -0,0 +1,98 @@ +page_title: The Docker User Guide +page_description: The Docker User Guide home page +page_keywords: docker, introduction, documentation, about, technology, docker.io, user, guide, user's, manual, platform, framework, virtualization, home, intro + +# Welcome to the Docker User Guide + +In the [Introduction](/) you got a taste of what Docker is and how it +works. In this guide we're going to take you through the fundamentals of +using Docker and integrating it into your environment. + +We’ll teach you how to use Docker to: + +* Dockerizing your applications. +* Run your own containers. +* Build Docker images. +* Share your Docker images with others. +* And a whole lot more! + +We've broken this guide into major sections that take you through +the Docker life cycle: + +## Getting Started with Docker.io + +*How do I use Docker.io?* + +Docker.io is the central hub for Docker. It hosts public Docker images +and provides services to help you build and manage your Docker +environment. To learn more; + +Go to [Using Docker.io](/userguide/dockerio). + +## Dockerizing Applications: A "Hello World!" + +*How do I run applications inside containers?* + +Docker offers a *container-based* virtualization platform to power your +applications. To learn how to Dockerize applications and run them. + +Go to [Dockerizing Applications](/userguide/dockerizing). + +## Working with Containers + +*How do I manage my containers?* + +Once you get a grip on running your applications in Docker containers +we're going to show you how to manage those containers. To find out +about how to inspect, monitor and manage containers: + +Go to [Working With Containers](/userguide/usingdocker). + +## Working with Docker Images + +*How can I access, share and build my own images?* + +Once you've learnt how to use Docker it's time to take the next step and +learn how to build your own application images with Docker. + +Go to [Working with Docker Images](/userguide/dockerimages) + +## Linking Containers Together + +Until now we've seen how to build individual applications inside Docker +containers. Now learn how to build whole application stacks with Docker +by linking together multiple Docker containers. + +Go to [Linking Containers Together](/userguide/dockerlinks). + +## Managing Data in Containers + +Now we know how to link Docker containers together the next step is +learning how to manage data, volumes and mounts inside our containers. + +Go to [Managing Data in Containers](/userguide/dockervolumes). + +## Working with Docker.io + +Now we've learned a bit more about how to use Docker we're going to see +how to combine Docker with the services available on Docker.io including +Trusted Builds and private repositories. + +Go to [Working with Docker.io](/userguide/dockerrepos). + +## Getting help + +* [Docker homepage](http://www.docker.io/) +* [Docker.io](http://index.docker.io) +* [Docker blog](http://blog.docker.io/) +* [Docker documentation](http://docs.docker.io/) +* [Docker Getting Started Guide](http://www.docker.io/gettingstarted/) +* [Docker code on GitHub](https://github.com/dotcloud/docker) +* [Docker mailing + list](https://groups.google.com/forum/#!forum/docker-user) +* Docker on IRC: irc.freenode.net and channel #docker +* [Docker on Twitter](http://twitter.com/docker) +* Get [Docker help](http://stackoverflow.com/search?q=docker) on + StackOverflow +* [Docker.com](http://www.docker.com/) + diff --git a/docs/sources/userguide/login-web.png b/docs/sources/userguide/login-web.png new file mode 100644 index 0000000000000000000000000000000000000000..8fe04d829e1d2ade7c7e9690b6d8bba8af22ce67 GIT binary patch literal 31788 zcmZU41yoeu);J|04Jsfolz>P{HzNW9A|;9--5?CjkOR^nF*G72p%`>`cbC-AHN*@s z#1O*_f8Y0g@BQ9d|GUmz>)d^IoxRRo=bRley4q@#cOTxx!^5N0P*-`4hez-c4-fwl zDe+%O`;U(=@bD;99hH@JHI$Xvbv<0|9Gz|P@YE?w-`T%;GxuPn{*~otrlAf}btZrM zZ}0X@brYZTbUhV&s>~D>qSWg`5o00n!>~d{{E5|!1JR=gDhT3U7XfOC$B#t}EAmgq zSU(vV`Q5IV9%N&dU5~1d>Ms;7N<8su5aD-K0cDhl!osh4R3b@vzI`KSya*wFHG#*q zMy?w1Y3=gT@G@^Mi}|Bo-*4?VCAWL%BVyLdB3+`7yR>b@sP5^hCE`(8PA1r<4$jZ^Svnk z7xP9!>4UUp@opd0pQx~0JnSkwIW6WYiC~|%#R+PoS1WWs%dqG_9s%?bHtH&eF!Aue z*&?(5$%e}_4a&XyM-!4+m@D}91^3rxz%N+e(w@jYJFXVhc*x8HB> zr^P+pUKM∓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%0A_0Y^2+O@| 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 literal 0 HcmV?d00001 diff --git a/docs/sources/userguide/register-confirm.png b/docs/sources/userguide/register-confirm.png new file mode 100644 index 0000000000000000000000000000000000000000..4057cbe965412f5402303a8e35cc5bbc92647e55 GIT binary patch literal 65441 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

UVUGuSRHi;C|ljP9%( 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

HV#vpVSNkc^cSk>(*T69*4xD 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 **Tip:** +> Another way to learn about `docker` commands is our +> [interactive tutorial](https://www.docker.io/gettingstarted). + +The `docker` client is pretty simple. Each action you can take +with Docker is a command and each command can take a series of +flags and arguments. + + # Usage: [sudo] docker [flags] [command] [arguments] .. + # Example: + $ docker run -i -t ubuntu /bin/bash + +Let's see this in action by using the `docker version` command to return +version information on the currently installed Docker client and daemon. + + $ sudo docker version + +This command will not only provide you the version of Docker client and +daemon you are using, but also the version of Go (the programming +language powering Docker). + + Client version: 0.8.0 + Go version (client): go1.2 + + Git commit (client): cc3a8c8 + Server version: 0.8.0 + + Git commit (server): cc3a8c8 + Go version (server): go1.2 + + Last stable version: 0.8.0 + +### Seeing what the Docker client can do + +We can see all of the commands available to us with the Docker client by +running the `docker` binary without any options. + + $ sudo docker + +You will see a list of all currently available commands. + + Commands: + attach Attach to a running container + build Build an image from a Dockerfile + commit Create a new image from a container's changes + . . . + +### Seeing Docker command usage + +You can also zoom in and review the usage for specific Docker commands. + +Try typing Docker followed with a `[command]` to see the usage for that +command: + + $ sudo docker attach + Help output . . . + +Or you can also pass the `--help` flag to the `docker` binary. + + $ sudo docker images --help + +This will display the help text and all available flags: + + Usage: docker attach [OPTIONS] CONTAINER + + Attach to a running container + + --no-stdin=false: Do not attach stdin + --sig-proxy=true: Proxify all received signal to the process (even in non-tty mode) + + +None of the containers we've run did anything particularly useful +though. So let's build on that experience by running an example web +application in Docker. + +> **Note:** +> You can see a full list of Docker's commands +> [here](/reference/commandline/cli/). + +## Running a Web Application in Docker + +So now we've learnt a bit more about the `docker` client let's move onto +the important stuff: running more containers. So far none of the +containers we've run did anything particularly useful though. So let's +build on that experience by running an example web application in +Docker. + +For our web application we're going to run a Python Flask application. +Let's start with a `docker run` command. + + $ sudo docker run -d -P training/webapp python app.py + +Let's review what our command did. We've specified two flags: `-d` and +`-P`. We've already seen the `-d` flag which tells Docker to run the +container in the background. The `-P` flag is new and tells Docker to +map any required network ports inside our container to our host. This +lets us view our web application. + +We've specified an image: `training/webapp`. This image is a +pre-built image we've created that contains a simple Python Flask web +application. + +Lastly, we've specified a command for our container to run: `python +app.py`. This launches our web application. + +> **Note:** +> You can see more detail on the `docker run` command in the [command +> reference](/reference/commandline/cli/#run) and the [Docker Run +> Reference](/reference/run/). + +## Viewing our Web Application Container + +Now let's see our running container using the `docker ps` command. + + $ sudo docker ps -l + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse + +You can see we've specified a new flag, `-l`, for the `docker ps` +command. This tells the `docker ps` command to return the details of the +*last* container started. + +> **Note:** +> The `docker ps` command only shows running containers. If you want to +> see stopped containers too use the `-a` flag. + +We can see the same details we saw [when we first Dockerized a +container](/userguide/dockerizing) with one important addition in the `PORTS` +column. + + PORTS + 0.0.0.0:49155->5000/tcp + +When we passed the `-P` flag to the `docker run` command Docker mapped any +ports exposed in our image to our host. + +> **Note:** +> We'll learn more about how to expose ports in Docker images when +> [we learn how to build images](/userguide/dockerimages). + +In this case Docker has exposed port 5000 (the default Python Flask +port) on port 49155. + +Network port bindings are very configurable in Docker. In our last +example the `-P` flag is a shortcut for `-p 5000` that makes port 5000 +inside the container to a high port (from the range 49000 to 49900) on +the local Docker host. We can also bind Docker container's to specific +ports using the `-p` flag, for example: + + $ sudo docker run -d -p 5000:5000 training/webapp python app.py + +This would map port 5000 inside our container to port 5000 on our local +host. You might be asking about now: why wouldn't we just want to always +use 1:1 port mappings in Docker containers rather than mapping to high +ports? Well 1:1 mappings have the constraint of only being able to map +one of each port on your local host. Let's say you want to test two +Python applications: both bound to port 5000 inside your container. +Without Docker's port mapping you could only access one at a time. + +So let's now browse to port 49155 in a web browser to +see the application. + +![Viewing the web application](/userguide/webapp1.png). + +Our Python application is live! + +## A Network Port Shortcut + +Using the `docker ps` command to return the mapped port is a bit clumsy so +Docker has a useful shortcut we can use: `docker port`. To use `docker port` we +specify the ID or name of our container and then the port for which we need the +corresponding public-facing port. + + $ sudo docker port nostalgic_morse 5000 + 0.0.0.0:49155 + +In this case we've looked up what port is mapped externally to port 5000 inside +the container. + +## Viewing the Web Application's Logs + +Let's also find out a bit more about what's happening with our application and +use another of the commands we've learnt, `docker logs`. + + $ sudo docker logs -f nostalgic_morse + * Running on http://0.0.0.0:5000/ + 10.0.2.2 - - [23/May/2014 20:16:31] "GET / HTTP/1.1" 200 - + 10.0.2.2 - - [23/May/2014 20:16:31] "GET /favicon.ico HTTP/1.1" 404 - + +This time though we've added a new flag, `-f`. This causes the `docker +logs` command to act like the `tail -f` command and watch the +container's standard out. We can see here the logs from Flask showing +the application running on port 5000 and the access log entries for it. + +## Looking at our Web Application Container's processes + +In addition to the container's logs we can also examine the processes +running inside it using the `docker top` command. + + $ sudo docker top nostalgic_morse + PID USER COMMAND + 854 root python app.py + +Here we can see our `python app.py` command is the only process running inside +the container. + +## Inspecting our Web Application Container + +Lastly, we can take a low-level dive into our Docker container using the +`docker inspect` command. It returns a JSON hash of useful configuration +and status information about Docker containers. + + $ docker inspect nostalgic_morse + +Let's see a sample of that JSON output. + + [{ + "ID": "bc533791f3f500b280a9626688bc79e342e3ea0d528efe3a86a51ecb28ea20", + "Created": "2014-05-26T05:52:40.808952951Z", + "Path": "python", + "Args": [ + "app.py" + ], + "Config": { + "Hostname": "bc533791f3f5", + "Domainname": "", + "User": "", + . . . + +We can also narrow down the information we want to return by requesting a +specific element, for example to return the container's IP address we would: + + $ sudo docker inspect -f '{{ .NetworkSettings.IPAddress }}' + 172.17.0.5 + +## Stopping our Web Application Container + +Okay we've seen web application working. Now let's stop it using the +`docker stop` command and the name of our container: `nostalgic_morse`. + + $ sudo docker stop nostalgic_morse + nostalgic_morse + +We can now use the `docker ps` command to check if the container has +been stopped. + + $ sudo docker ps -l + +## Restarting our Web Application Container + +Oops! Just after you stopped the container you get a call to say another +developer needs the container back. From here you have two choices: you +can create a new container or restart the old one. Let's look at +starting our previous container back up. + + $ sudo docker start nostalgic_morse + nostalgic_morse + +Now quickly run `docker ps -l` again to see the running container is +back up or browse to the container's URL to see if the application +responds. + +> **Note:** +> Also available is the `docker restart` command that runs a stop and +> then start on the container. + +## Removing our Web Application Container + +Your colleague has let you know that they've now finished with the container +and won't need it again. So let's remove it using the `docker rm` command. + + $ sudo docker rm nostalgic_morse + Error: Impossible to remove a running container, please stop it first or use -f + 2014/05/24 08:12:56 Error: failed to remove one or more containers + +What's happened? We can't actually remove a running container. This protects +you from accidentally removing a running container you might need. Let's try +this again by stopping the container first. + + $ sudo docker stop nostalgic_morse + nostalgic_morse + $ sudo docker rm nostalgic_morse + nostalgic_morse + +And now our container is stopped and deleted. + +> **Note:** +> Always remember that deleting a container is final! + +# Next steps + +Until now we've only used images that we've downloaded from +[Docker.io](https://index.docker.io) now let's get introduced to +building and sharing our own images. + +Go to [Working with Docker Images](/userguide/dockerimages). + diff --git a/docs/sources/userguide/webapp1.png b/docs/sources/userguide/webapp1.png new file mode 100644 index 0000000000000000000000000000000000000000..5653497f17e1bbf2fbbdc5d0d7bbe7240eb7b040 GIT binary patch literal 51848 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¬2ku(OfH52DJc^(U6M> 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 z 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 Wi+s1pVWNjvADxGW4=V53zxaQX0JYr! literal 0 HcmV?d00001