Merge pull request #1258 from fredlf/1.6-docs-updates

Prepping for 1.6 release.
This commit is contained in:
Aanand Prasad 2015-04-07 11:22:02 +01:00
commit 219751abc7
2 changed files with 40 additions and 24 deletions

View File

@ -5,6 +5,8 @@ page_keywords: documentation, docs, docker, compose, orchestration, containers
# Docker Compose # Docker Compose
## Overview
Compose is a tool for defining and running complex applications with Docker. Compose is a tool for defining and running complex applications with Docker.
With Compose, you define a multi-container application in a single file, then With Compose, you define a multi-container application in a single file, then
spin your application up in a single command which does everything that needs to spin your application up in a single command which does everything that needs to
@ -191,3 +193,17 @@ At this point, you have seen the basics of how Compose works.
[Rails](rails.md), or [Wordpress](wordpress.md). [Rails](rails.md), or [Wordpress](wordpress.md).
- See the reference guides for complete details on the [commands](cli.md), the - See the reference guides for complete details on the [commands](cli.md), the
[configuration file](yml.md) and [environment variables](env.md). [configuration file](yml.md) and [environment variables](env.md).
## Release Notes
### Version 1.2.0 (April 7, 2015)
For complete information on this release, see the [1.2.0 Milestone project page](https://github.com/docker/compose/wiki/1.2.0-Milestone-Project-Page).
In addition to bug fixes and refinements, this release adds the following:
* The `extends` keyword, which adds the ability to extend services by sharing common configurations. For details, see
[PR #972](https://github.com/docker/compose/pull/1088).
* Better integration with Swarm. Swarm will now schedule inter-dependent
containers on the same host. For details, see
[PR #972](https://github.com/docker/compose/pull/972).

View File

@ -5,73 +5,73 @@ page_keywords: documentation, docs, docker, compose, orchestration, containers,
## Using Compose in production ## Using Compose in production
While **Compose is not yet considered production-ready**, you can try using it While **Compose is not yet considered production-ready**, if you'd like to experiment and learn more about using it in production deployments, this guide
for production deployments if you're feeling brave. Production-readiness is an can help.
active, ongoing project - see the The project is actively working towards becoming
production-ready; to learn more about the progress being made, check out the
[roadmap](https://github.com/docker/compose/blob/master/ROADMAP.md) for details [roadmap](https://github.com/docker/compose/blob/master/ROADMAP.md) for details
on how it's coming along and what needs to be done. on how it's coming along and what still needs to be done.
When deploying to production, you'll almost certainly want to make changes to When deploying to production, you'll almost certainly want to make changes to
your app configuration that are more appropriate to a live environment. This may your app configuration that are more appropriate to a live environment. These
include: changes may include:
- Removing any volume bindings for application code, so that code stays inside - Removing any volume bindings for application code, so that code stays inside
the container and can't be changed from outside the container and can't be changed from outside
- Binding to different ports on the host - Binding to different ports on the host
- Setting environment variables differently (e.g. to decrease the verbosity of - Setting environment variables differently (e.g., to decrease the verbosity of
logging, or to enable email sending) logging, or to enable email sending)
- Specifying a restart policy (e.g. `restart: always`) to avoid downtime - Specifying a restart policy (e.g., `restart: always`) to avoid downtime
- Adding extra services (e.g. a log aggregator) - Adding extra services (e.g., a log aggregator)
For this reason, you'll probably want to define a separate Compose file, say For this reason, you'll probably want to define a separate Compose file, say
`production.yml`, which specifies production-appropriate configuration. `production.yml`, which specifies production-appropriate configuration.
<!-- TODO: uncomment when the `extends` guide is merged
> **Note:** The [extends](extends.md) keyword is useful for maintaining multiple > **Note:** The [extends](extends.md) keyword is useful for maintaining multiple
> Compose files which re-use common services without having to manually copy and > Compose files which re-use common services without having to manually copy and
> paste. > paste.
-->
Once you've got an alternate configuration file, you can make Compose use it Once you've got an alternate configuration file, make Compose use it
by setting the `COMPOSE_FILE` environment variable: by setting the `COMPOSE_FILE` environment variable:
$ COMPOSE_FILE=production.yml $ COMPOSE_FILE=production.yml
$ docker-compose up -d $ docker-compose up -d
> **Note:** You can also use the file for a one-off command without setting > **Note:** You can also use the file for a one-off command without setting
> an environment variable by passing the `-f` flag, e.g. > an environment variable. You do this by passing the `-f` flag, e.g.,
> `docker-compose -f production.yml up -d`. > `docker-compose -f production.yml up -d`.
### Deploying changes ### Deploying changes
When you make changes to your app code, you'll need to rebuild your image and When you make changes to your app code, you'll need to rebuild your image and
recreate your app containers. If the service you want to redeploy is called recreate your app's containers. To redeploy a service called
`web`, this will look like: `web`, you would use:
$ docker-compose build web $ docker-compose build web
$ docker-compose up --no-deps -d web $ docker-compose up --no-deps -d web
This will first rebuild the image for `web` and then stop, destroy and recreate This will first rebuild the image for `web` and then stop, destroy, and recreate
*just* the `web` service. The `--no-deps` flag prevents Compose from also *just* the `web` service. The `--no-deps` flag prevents Compose from also
recreating any services which `web` depends on. recreating any services which `web` depends on.
### Run Compose on a single server ### Running Compose on a single server
You can use Compose to deploy an app to a remote Docker host by setting the You can use Compose to deploy an app to a remote Docker host by setting the
`DOCKER_HOST`, `DOCKER_TLS_VERIFY` and `DOCKER_CERT_PATH` environment variables `DOCKER_HOST`, `DOCKER_TLS_VERIFY`, and `DOCKER_CERT_PATH` environment variables
appropriately. [Docker Machine](https://docs.docker.com/machine) makes managing appropriately. For tasks like this,
local and remote Docker hosts very easy, and is recommended even if you're not [Docker Machine](https://docs.docker.com/machine) makes managing local and
deploying remotely. remote Docker hosts very easy, and is recommended even if you're not deploying
remotely.
Once you've set up your environment variables, all the normal `docker-compose` Once you've set up your environment variables, all the normal `docker-compose`
commands will work with no extra configuration. commands will work with no further configuration.
### Run Compose on a Swarm cluster ### Running Compose on a Swarm cluster
[Docker Swarm](https://docs.docker.com/swarm), a Docker-native clustering [Docker Swarm](https://docs.docker.com/swarm), a Docker-native clustering
system, exposes the same API as a single Docker host, which means you can use system, exposes the same API as a single Docker host, which means you can use
Compose against a Swarm instance and run your apps across multiple hosts. Compose against a Swarm instance and run your apps across multiple hosts.
Compose/Swarm integration is still in the experimental stage, and Swarm is still Compose/Swarm integration is still in the experimental stage, and Swarm is still
in beta, but if you're interested to try it out, check out the in beta, but if you'd like to explore and experiment, check out the
[integration guide](https://github.com/docker/compose/blob/master/SWARM.md). [integration guide](https://github.com/docker/compose/blob/master/SWARM.md).