Docker Compose is a tool, that is used to run multi-container Docker applications, with Compose you use a YAML file to configure applications run each container will run a standalone services. You can create and start all the service from the docker-compose.yml file with a single command "docker-compose up -d".
Installing Docker Compose on Linux:There are three steps to installing the Docker Compose on your Linux instance, the steps are below,
First find the latest version from the GitHub portal: https://github.com/docker/compose/releases, found the latest verion 1.29.2 when post this page,
Second download binary file with latest version from the GitHub using CURL command on your Terminal,
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
third one is, once the downloaded the docker-compose binary file, we need to set the execute permissions for that compose binary file by chmod command,
$ sudo chmod +x /usr/local/bin/docker-compose
Finally, will verify the installation by checking the docker-compose version, the command is
$ sudo docker-compose --version
Will see the version details looks like below output,
docker-compose version 1.29.2, build 5becea4c
$ sudo docker-compose up --help
You will see the output looks like below,
Builds, (re)creates, starts, and attaches to containers for a service.
Unless they are already running, this command also starts any linked services.
The `docker-compose up` command aggregates the output of each container. When
the command exits, all containers are stopped. Running `docker-compose up -d`
starts the containers in the background and leaves them running.
If there are existing containers for a service, and the service's configuration
or image was changed after the container's creation, `docker-compose up` picks
up the changes by stopping and recreating the containers (preserving mounted
volumes). To prevent Compose from picking up changes, use the `--no-recreate`
If you want to force Compose to stop and recreate all containers, use the
Usage: up [options] [--scale SERVICE=NUM...] [--] [SERVICE...]
-d, --detach Detached mode: Run containers in the background,
print new container names. Incompatible with
--no-color Produce monochrome output.
--quiet-pull Pull without printing progress information
--no-deps Don't start linked services.
--force-recreate Recreate containers even if their configuration
and image haven't changed.
--always-recreate-deps Recreate dependent containers.
Incompatible with --no-recreate.
--no-recreate If containers already exist, don't recreate
them. Incompatible with --force-recreate and -V.
--no-build Don't build an image, even if it's missing.
--no-start Don't start the services after creating them.
--build Build images before starting containers.
--abort-on-container-exit Stops all containers if any container was
stopped. Incompatible with -d.
--attach-dependencies Attach to dependent containers.
-t, --timeout TIMEOUT Use this timeout in seconds for container
shutdown when attached or when containers are
already running. (default: 10)
-V, --renew-anon-volumes Recreate anonymous volumes instead of retrieving
data from the previous containers.
--remove-orphans Remove containers for services not defined
in the Compose file.
--exit-code-from SERVICE Return the exit code of the selected service
container. Implies --abort-on-container-exit.
--scale SERVICE=NUM Scale SERVICE to NUM instances. Overrides the
`scale` setting in the Compose file if present.
--no-log-prefix Don't print prefix in logs.