Open PortfolioOpen Portfolio.
โ† Back to Blog

The Complete Guide to Docker Compose for Development

April 4, 2026at 2:00 PM UTCBy Pocket Portfolio TeamTechnology
The Complete Guide to Docker Compose for Development
#docker#development#docker-compose#guide

Problem

Managing multiple services for a development environment can be complex and time-consuming. Manually starting each service, managing dependencies, and maintaining consistency across environments can lead to errors and inefficiencies. Developers need a reliable solution to simplify the orchestration of containers, ensuring all services run in harmony.

Solution with Code

Docker Compose is a tool that allows you to define and manage multi-container Docker applications. With a simple YAML configuration, you can specify services, networks, and volumes, and easily spin up your entire development environment with a single command.

Step 1: Install Docker Compose

Ensure Docker is installed on your machine. Docker Compose comes bundled with Docker Desktop for Windows and Mac. For Linux, you can install it separately:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.17.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Step 2: Create a docker-compose.yml File

Define your services in a docker-compose.yml file. For example, a basic setup with a web application and a database might look like this:

version: '3.8'
services:
  web:
    image: node:14
    volumes:
      - .:/app
    ports:
      - "3000:3000"
    command: "npm start"
    depends_on:
      - db

  db:
    image: postgres:13
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydatabase
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

Step 3: Start Your Services

Navigate to the directory containing your docker-compose.yml file and run:

docker-compose up

This command will build and start all the services defined in the file. To run it in detached mode, use:

docker-compose up -d

Step 4: Manage Your Environment

To view running services, use:

docker-compose ps

To stop all services, run:

docker-compose down

Key Concepts

  • Services: Defined in the docker-compose.yml file, each service corresponds to a container.
  • Volumes: Persistent storage shared between the host and the container, useful for storing data that should survive container restarts.
  • Networks: Allow communication between containers, isolating them from other networks.
  • Dependencies: Using depends_on helps ensure the correct startup order of services.

By using Docker Compose, developers can easily manage complex development environments, reducing setup time and ensuring consistency across different stages of the development process.

The Complete Guide to Docker Compose for Development | Open Portfolio Blog | Open Portfolio