Docs / Cloud & DevOps / Docker Compose for Multi-Container Applications

Docker Compose for Multi-Container Applications

By Admin · Feb 25, 2026 · Updated Apr 24, 2026 · 29 views · 1 min read

Introduction

Docker Compose lets you define and run multi-container applications with a single YAML file. Instead of running multiple docker run commands, you describe your entire stack in docker-compose.yml.

Installation

Docker Compose V2 is included with Docker Engine:

docker compose version

Example: WordPress Stack

# docker-compose.yml
services:
  wordpress:
    image: wordpress:latest
    restart: always
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: secretpass
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp_data:/var/www/html
    depends_on:
      - db

  db:
    image: mariadb:11
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: secretpass
    volumes:
      - db_data:/var/lib/mysql

  redis:
    image: redis:7-alpine
    restart: always

volumes:
  wp_data:
  db_data:

Essential Commands

# Start all services in background
docker compose up -d

# View running services
docker compose ps

# View logs
docker compose logs -f wordpress

# Stop all services
docker compose down

# Stop and remove volumes (data loss!)
docker compose down -v

Best Practices

  • Always use named volumes for persistent data
  • Pin image versions in production (not :latest)
  • Use .env files for environment variables
  • Set restart: always for production services

Was this article helpful?