mirror of https://github.com/docker/compose.git
182 lines
5.1 KiB
Markdown
182 lines
5.1 KiB
Markdown
page_title: Compose CLI reference
|
|
page_description: Compose CLI reference
|
|
page_keywords: fig, composition, compose, docker, orchestration, cli, reference
|
|
|
|
|
|
# CLI reference
|
|
|
|
Most Docker Compose commands are run against one or more services. If
|
|
the service is not specified, the command will apply to all services.
|
|
|
|
For full usage information, run `docker-compose [COMMAND] --help`.
|
|
|
|
## Commands
|
|
|
|
### build
|
|
|
|
Builds or rebuilds services.
|
|
|
|
Services are built once and then tagged as `project_service`, e.g.,
|
|
`composetest_db`. If you change a service's Dockerfile or the contents of its
|
|
build directory, run `docker-compose build` to rebuild it.
|
|
|
|
### help
|
|
|
|
Displays help and usage instructions for a command.
|
|
|
|
### kill
|
|
|
|
Forces running containers to stop by sending a `SIGKILL` signal. Optionally the
|
|
signal can be passed, for example:
|
|
|
|
$ docker-compose kill -s SIGINT
|
|
|
|
### logs
|
|
|
|
Displays log output from services.
|
|
|
|
### port
|
|
|
|
Prints the public port for a port binding
|
|
|
|
### ps
|
|
|
|
Lists containers.
|
|
|
|
### pull
|
|
|
|
Pulls service images.
|
|
|
|
### rm
|
|
|
|
Removes stopped service containers.
|
|
|
|
|
|
### run
|
|
|
|
Runs a one-off command on a service.
|
|
|
|
For example,
|
|
|
|
$ docker-compose run web python manage.py shell
|
|
|
|
will start the `web` service and then run `manage.py shell` in python.
|
|
Note that by default, linked services will also be started, unless they are
|
|
already running.
|
|
|
|
One-off commands are started in new containers with the same configuration as a
|
|
normal container for that service, so volumes, links, etc will all be created as
|
|
expected. When using `run`, there are two differences from bringing up a
|
|
container normally:
|
|
|
|
1. the command will be overridden with the one specified. So, if you run
|
|
`docker-compose run web bash`, the container's web command (which could default
|
|
to, e.g., `python app.py`) will be overridden to `bash`
|
|
|
|
2. by default no ports will be created in case they collide with already opened
|
|
ports.
|
|
|
|
Links are also created between one-off commands and the other containers which
|
|
are part of that service. So, for example, you could run:
|
|
|
|
$ docker-compose run db psql -h db -U docker
|
|
|
|
This would open up an interactive PostgreSQL shell for the linked `db` container
|
|
(which would get created or started as needed).
|
|
|
|
If you do not want linked containers to start when running the one-off command,
|
|
specify the `--no-deps` flag:
|
|
|
|
$ docker-compose run --no-deps web python manage.py shell
|
|
|
|
Similarly, if you do want the service's ports to be created and mapped to the
|
|
host, specify the `--service-ports` flag:
|
|
$ docker-compose run --service-ports web python manage.py shell
|
|
|
|
### scale
|
|
|
|
Sets the number of containers to run for a service.
|
|
|
|
Numbers are specified as arguments in the form `service=num`. For example:
|
|
|
|
$ docker-compose scale web=2 worker=3
|
|
|
|
### start
|
|
|
|
Starts existing containers for a service.
|
|
|
|
### stop
|
|
|
|
Stops running containers without removing them. They can be started again with
|
|
`docker-compose start`.
|
|
|
|
### up
|
|
|
|
Builds, (re)creates, starts, and attaches to containers for a service.
|
|
|
|
Linked services will be started, unless they are already running.
|
|
|
|
By default, `docker-compose up` will aggregate the output of each container and,
|
|
when it exits, all containers will be stopped. Running `docker-compose up -d`,
|
|
will start the containers in the background and leave them running.
|
|
|
|
By default, if there are existing containers for a service, `docker-compose up` will stop and recreate them (preserving mounted volumes with [volumes-from]), so that changes in `docker-compose.yml` are picked up. If you do not want containers stopped and recreated, use `docker-compose up --no-recreate`. This will still start any stopped containers, if needed.
|
|
|
|
[volumes-from]: http://docs.docker.io/en/latest/use/working_with_volumes/
|
|
|
|
## Options
|
|
|
|
### --verbose
|
|
|
|
Shows more output
|
|
|
|
### --version
|
|
|
|
Prints version and exits
|
|
|
|
### -f, --file FILE
|
|
|
|
Specifies an alternate Compose yaml file (default: `docker-compose.yml`)
|
|
|
|
### -p, --project-name NAME
|
|
|
|
Specifies an alternate project name (default: current directory name)
|
|
|
|
|
|
## Environment Variables
|
|
|
|
Several environment variables are available for you to configure Compose's behaviour.
|
|
|
|
Variables starting with `DOCKER_` are the same as those used to configure the
|
|
Docker command-line client. If you're using boot2docker, `$(boot2docker shellinit)`
|
|
will set them to their correct values.
|
|
|
|
### COMPOSE\_PROJECT\_NAME
|
|
|
|
Sets the project name, which is prepended to the name of every container started by Compose. Defaults to the `basename` of the current working directory.
|
|
|
|
### COMPOSE\_FILE
|
|
|
|
Sets the path to the `docker-compose.yml` to use. Defaults to `docker-compose.yml` in the current working directory.
|
|
|
|
### DOCKER\_HOST
|
|
|
|
Sets the URL of the docker daemon. As with the Docker client, defaults to `unix:///var/run/docker.sock`.
|
|
|
|
### DOCKER\_TLS\_VERIFY
|
|
|
|
When set to anything other than an empty string, enables TLS communication with
|
|
the daemon.
|
|
|
|
### DOCKER\_CERT\_PATH
|
|
|
|
Configures the path to the `ca.pem`, `cert.pem`, and `key.pem` files used for TLS verification. Defaults to `~/.docker`.
|
|
|
|
## Compose documentation
|
|
|
|
- [Installing Compose](install.md)
|
|
- [User guide](index.md)
|
|
- [Yaml file reference](yml.md)
|
|
- [Compose environment variables](env.md)
|
|
- [Compose command line completion](completion.md)
|