Skip to main content

Docker composer

docker run container_name/app_name

docker run mongodb

docker run redis:alpine

docker run ansible

user docker composer run complex applications

docker-compose.yml

services:
web:
image: "contaimer_name/app"
database:
image: "mongodb"
messaging:
image: "redis:alpine"
orchestration:
image: "ansible"
docker-compose up
  • docker run multiple applications
docker run -d --name=redis redis

docker run -d --name=db postgres:9.4 result-app

docker run -d --name=vote -p 5000:80 voting-app

docker run -d --name=result -p 5001:80

docker run -d --name=worker worker
  • docker run --links link applications
docker run -d --name=redis redis

docker run -d --name=db postgres:9.4 --link db:db result-app

docker run -d --name=vote -p 5000:80 --link redis:redis voting-app

docker run -d --name=result -p 5001:80

docker run -d --name=worker --link db:db --link redis:redis worker
  • docker compose
redis:
image: redis
db:
image: postgres: 9.4
vote:
image: voting-app
ports:
- 5000:80
links:
- redis

result:
image: result-app
ports:
- 5001:80
links:
- db

worker:
image: worker
links:
- redis
- db
  • run compose file
docker-conpose up

Docker compose - build

redis:
image: redis
db:
image: postgres: 9.4
vote:
build: ./vote
ports:
- 5000:80
links:
- redis

result:
build: ./result
ports:
- 5001:80
links:
- db

worker:
image: worker
links:
- redis
- db

Docker compose -version

  • version 1
redis:
image: redis
db:
image: postgres: 9.4
vote:
build: ./vote
ports:
- 5000:80
links:
- redis
  • version 2
version: 2
services:
redis:
image: redis

networks:
- back-end
db:
image: postgres: 9.4
network:
- backend-end
vote:
build: ./vote
network:
- front-end
- back-end

result:
image: result
network:
- front-end
- back-end

networks:
front-end:
back-end:
  • version 3
version: 3
services:
redis:
image: redis
db:
image: postgres: 9.4
vote:
build: ./vote
ports:
- 5000:80

valuable commands

# clean workspace

-docker container rm $(docker container ls -aq) # remove all containers

-docker rmi $(docker images -q) # remove all images

version: "3.8"
services:
web:
build: ./frontend
ports:
- 3000:3000
api:
build: ./backend
ports:
- 3001:3001
environment:
- DB_URL: mongodb://db/db_name
db:
image: mongo:4.0-xenial
ports:
- 27017:27017
volumes:
- mongo-data:/data/db

volumes:
mongo-data: