Docker Compose

Docker Compose facilitates to define and run multi-container applications at a single time. Docker Compose make up app services with docker-compose.yml file.

Installation

To install docker-compose in your linux ubuntu machine, execute the below command

sudo apt install docker-compose -y

Creating Your First Docker-Compose File

All Docker Compose files are YAML files. Vim editor can be used to create YAML file.

sudo vim docker-compose.yml 
version: '3.1'
services:
  mongo:
    container_name: mongo
    image: mongo
    restart: always
    volumes:
          - /data/db
    ports:
      - 27017:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: veryeasy1 
  nginx:
    container_name: nginx
    image: 'nginx:latest'
    ports:
      - "80:80"

Services and containers are related but both are different things. One or multiple containers can be executed/run by a service. With docker you handle containers and with docker-compose you handle services.

In the above example we have two services mongo and nginx
When we run docker-compose up, then compose will start 2 containers named mongo and nginx

Now let’s try to run our docker-compose file using the following command −

sudo ./docker-compose up 

Once executed, all the images will start downloading and the containers will run automatically.

And when we will do docker ps, we will see that the containers are up and running.

Subscribe Now