- running multiple docker containers and network them can be tedious
- docker compose is a structured way of doing this
- default file at root
docker-compose.yaml
version: '3' # version of docker compose
services:
redis-older: # name of container
image: redis:4.0 # image from docker hub
ports:
- 6000:6379 # host port 6000 --> container port 6379
- 8000:6379
environment: # env variables, found on dockerhub doc for image
- USERNAME=admin
- PASSWORD=password
networks:
- common
volumes:
mysql:
# if no network name to be provided
# docker compose will create a common docker env for all the services in the file
networks:
common:
name: my_docker_network
# default file at root `docker-compose.yaml`
docker compose up <service-1> <service-2>
# creates a common docker network and starts all containers in it
docker-compose -f <filename>.yaml up
# stops all containers and tears down the docker network
docker-compose -f <filename>.yaml down
# deltes unused docker images
docker system prune -f
docker compose exec cd bash