Docker compose

Docker uses Dockerfiles to specify what an image should look like. It uses something called "compose" files to allow you to specify multiple containers that can talk to each other.

Exercise
Answer
Exercise
  • Add a section to the "docker-compose.yml" file which specifies a Mongo DB image. Name it "mongo"

  • Link that image with the "start" image

  • Run the image

  • Notice that both a "start" image and a "mongo" image are created

Answer
  • Open the "docker-compose.yml" file in the "start" project

  • Add a new section under "services" called "mongo"

version: '2.1'
services:
start:
image: start
build: .
environment:
NODE_ENV: production
ports:
- 3000:3000
mongo:
  • Specify the "mongo" image to be pulled down from Dockerhub

version: '2.1'
services:
start:
image: start
build: .
environment:
NODE_ENV: production
ports:
- 3000:3000
mongo:
image: 'mongo'
  • Add a line just below line 10 that links the "start" container with the "mongo" container

version: '2.1'
services:
start:
image: start
build: .
environment:
NODE_ENV: production
ports:
- 3000:3000
links:
- mongo
mongo:
image: 'mongo'
  • Open the Command Palette(Cmd/Ctrl + Shift + P)

  • Select "Docker: Compose Up"

  • Select the "start" project

  • Select the "docker-compose.yml" file from the prompt

  • Open the Docker Explorer view and notice that there are now two containers running