How to use Docker Compose to manage multiple containers?

Published on Aug. 22, 2023, 12:19 p.m.

To use Docker Compose to manage multiple containers, you need to define the containers and their configuration in a YAML file called docker-compose.yml.

Here is an example docker-compose.yml file that defines two containers, a web server and a database, and links them together:

version: '3'

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./web:/usr/share/nginx/html
    depends_on:
      - db
  db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: password

In this example, the web service uses the nginx image and maps port 80 of the container to port 80 of the host machine. It also mounts the ./web directory on the host to the /usr/share/nginx/html directory in the container. The db service uses the mysql image and sets the MYSQL_ROOT_PASSWORD environment variable to “password”.

To start the containers defined in the docker-compose.yml file, run the following command in the directory containing the file:

docker-compose up

This will create and start the containers, and display their logs in the terminal. If you want to run the containers in the background, use the -d or --detach option:

docker-compose up -d

To stop and remove the containers, run the following command:

docker-compose down

This will stop the containers and remove them, as well as any volumes and networks created by the docker-compose up command.

Docker Compose is a powerful tool that allows you to easily manage multiple containers and their configuration. You can define environment variables, mount volumes, link containers together, and much more using the docker-compose.yml file.