Show Menu
Cheatography

Docker Compose Cheat Sheet by

Docker Compose

Basics

Docker­-Co­mpose: is a tool for defining and running multi-­con­tainer Docker applic­ations. With Compose, you use a YAML file to configure your applic­ation’s services. Then, with a single command, you create and start all the services from your config­ura­tion.
Need to good to yml file directory to succes­sfully run the docker­-co­mpose commands.
docker­-co­mpose start wordpr­ess_db :it will only start 1 service
but docker­-co­mpose start : will start all the services
similar is the case with other commands.

docker­-co­mpose start

Starts an existing service container.

docker­-co­mpose stop

-t, --timeout
specify a shutdown timeout in second­s.(­def­ault: 10)
Stops running containers without removing them. They can be started again with
docker­-co­mpose start
.

docker­-co­mpose pause

Pauses running containers of a service. They can be unpaused with docker­-co­mpose unpause

docker­-co­mpose unpause

Unpauses paused containers of a service.

docker­-co­mpose restart

Restarts all stopped and running services.

docker­-co­mpose ps

-q, --quiet
Only display IDs
Shows list of containers for a service.

docker­-co­mpose logs

-f, --follow
Follow log output.
Displays log output from services.

docker­-co­mpose top

View the processes running within each service container.

Network

# creates a custom network called 
frontend
networks:   frontend:

Depend­encies

 
# makes the
db
service available as the hostname
database

# (implies depend­s_on)
links:
- db:dat­abase
- redis
# make sure
db
is alive before starting
depend­s_on:
- db

docker­-co­mpo­se.yml

version: "3.7"
services:
  wordpress_db:
    container_name: "wordpress_db"
    image: "mysql:5.7"
    volumes:
      - ~/dockers/wordpress/.data/wordpress_db:/var/lib/mysql
    environment:
      MYSQL_USER: gaurav
      MYSQL_PASSWORD: victory
      MYSQL_DATABASE: db
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    networks:
      - wordpress_network
    ports:
      - 3307:3306
  wordpress_web:
    container_name: "wordpress_web"
    image: "wordpress"
    volumes:
      - ~/dockers/wordpress/.data/wordpress_web:/var/www/html
    environment:
      WORDPRESS_DB_HOST: wordpress_db
      WORDPRESS_DB_USER: gaurav
      WORDPRESS_DB_PASSWORD: victory
      WORDPRESS_DB_NAME: db
    networks:
      - wordpress_network
    ports:
      - 8080:80
    depends_on:
      - wordpress_db
networks:
  wordpress_network:

docker­-co­mpose rm

Removes stopped service contai­ners.By default, anonymous volumes attached to containers are not removed. You can override this with -v. To list all volumes, use docker volume ls.
-f, --force – Don’t ask to confirm the removal
-s, --stop – Stop the contai­ners, if required, before removing
-v – Remove any anonymous volumes attached to containers

docker­-co­mpose pull

Pulls an image associated with a service defined in a docker­-co­mpo­se.yml file, but does not start containers based on those images.
 

docker compose up

docker­-co­mpose up
use docker­-co­mpo­se.yml
docker­-co­mpose -f <fi­len­ame.ym­l> -f <fi­len­ame­loc­al.y­ml> up
use custom yml files
-d, --detach
background detached mode
--build
forcefully Build images before starting contai­ners.
--no-build
skips the image build process
--forc­e-r­ecreate
Recreate containers even if their config­uration and image haven’t changed.
--no-color
Produce monochrome output.
--scale SERVIC­E=NUM
Scale SERVICE to NUM instances. Overrides the
scale
setting in the Compose file if present.
docker­-co­mpose up is used to start a project. It tries to automate a series of operations including building a mirror, (re)cr­eating a service, starting a service, and associ­ating a servic­e-r­elated container.
It also builds the images if the images do not exist and starts the contai­ners:

docker­-co­mpose down

Stops containers and removes contai­ners, networks, volumes, and images
By default, the only things removed are:
- Containers for services defined in the Compose file
- Networks defined in the
networks
section of the Compose file
- The default network, if one is used
created by
up
.Networks and volumes defined as
external
are never removed.

use -v to remove volumes also along with other things

docker­-co­mpose version

Prints the version of docker­-co­mpose.

docker­-co­mpose push

Pushes images for services to their respective regist­ry/­rep­ository

docker­-co­mpose run

Runs a one-time command against a service. For example, the following command starts the web service and runs bash as its command :
docker­-co­mpose run wordpr­ess_db bash

docker­-co­mpose config

Validate and view the Compose file.

docker­-co­mpose kill

Forces running containers to stop by sending a SIGKILL signal.

docker­-co­mpose bundle

A Dockerfile can be built into an image, and containers can be created from that image. Similarly, a docker­-co­mpo­se.yml can be built into a distri­buted applic­ation bundle

docker­-co­mpose build

only builds the images, does not start the contai­ners:

Building

web:
  # build from Dockerfile
  build: .
  # build from custom Dockerfile
  build:
    context: ./dir
    dockerfile: Dockerfile.dev
  # build from image
  image: ubuntu
  image: ubuntu:14.04
  image: tutum/influxdb
  image: example-registry:4000/postgresql
  image: a4bc65fd

Ports

ports:
    - "3000"
    - "8000:80"  # guest:host
  # expose ports to linked services (not to host)
  expose: ["3000"]

Commands

 # command to execute
  command: bundle exec thin -p 3000
  command: [bundle, exec, thin, -p, 3000]
  # override the entrypoint
  entrypoint: /app/start.sh
  entrypoint: [php, -d, vendor/bin/phpunit]

Enviro­nment variables

  # environment vars
  environment:
    RACK_ENV: development
  environment:
    - RACK_ENV=development
  # environment vars from file
  env_file: .env
  env_file: [.env, .development.env]
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          Ubuntu Compose Key Combinations Cheat Sheet

          More Cheat Sheets by gauravpandey44