Skip to content

Latest commit

 

History

History
170 lines (127 loc) · 3.1 KB

8-docker-compose.md

File metadata and controls

170 lines (127 loc) · 3.1 KB

Docker Compose

Common Cases

  • Development environments

  • Automated testing environments

  • Single host deployments

  • Docker-Swarm deployments

  • Setup

  • CLI

  • Compose-File

Workflow

Using Compose is basically a three-step process:

  1. Define your app’s environment with a Dockerfile
  2. Define the services that make up your app in docker-compose.yml so they can be run together in an isolated environment.
  3. Lastly, run docker-compose up and Compose will start and run your entire app.

Docker-Compose YAML-File

docker-compose.yml

version: '3'
services:
  web:
    build: .
    environment:
      NODE_ENV: production
      REDIS_HOST: 'redis'
      REDIS_PORT: '6379'
    ports:
      - '8080:8080'
    links:
      - 'redis'
    depends_on:
      - 'redis'
  redis:
    image: redis:4.0.11

docker-compose.yml

version: '3'
services:
  app:
    networks:
      - compose-nodejs-redis-app
    deploy:
      replicas: 2
    image: compose-nodejs-redis:1.0.0
    environment:
      NODE_ENV: production
      REDIS_HOST: 'redis'
      REDIS_PORT: '6379'
    depends_on:
      - 'redis'
    ports:
      - '9090:80'
  redis:
    networks:
      - compose-nodejs-redis-app
    image: redis

networks:
  compose-nodejs-redis-app:
    external: true

Commands to run docker-compose stacks

docker-compose

Build all images

With docker-compose we can build all the images at once running

docker-compose build

Run a command against a service

docker-compose run web sh

Start services

Start docker-compose.yaml as default

docker-compose up

Detached

docker-compose up -d

Logs

docker-compose logs
docker-compose logs web

List containers

docker-compose ps

Stop containers

docker-compose stop
docker-compose stop web

Start container

  • Starts existing containers for a service, e.g. web:
docker-compose start web

Remove containers

docker-compose rm

The previous command removes stopped service containers.

Remove all services

docker-compose down