여러 개의 컨테이너가 하나의 어플리케이션으로 동작될 때, 테스트를 하기 위해서는 동작에 필요한 컨테이너를 하나씩 생성해야한다. 예를 들면 웹 어플리케이션을 테스트할 경우, 웹서버컨테이너, 데이터베이스 컨테이너 두 개의 컨테이너를 각각생성해야하는데, 도커 컴포즈를 이용할 경우 하나의 서비스로 이를 해결할 수 있다.
$ docker run --name wordpress_db -d mysql:8
$ docker run -d -p 8080:80 \
--link wordpress_db:mysql --name seunghwan_wordpress \
wordpress:latest
curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
docker-compose -v
version: '2'
services:
db:
image: mariadb:10.9
volumes:
- ./mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
image: wordpress:latest
volumes:
- ./wp:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
- 컨테이너 실행
docker-compose up
docker-compose up -d -> -d는 도커컴포즈를 백그라운드로 실행
- 컨테이너 새로 만들기
docker-compose up --force-recreate
- 도커 이미지를 다시 빌드 -> 설정파일내에 build로 선언된 컨테이너만 빌드
docker-compose up --build
docker-compose up --build 컨테이너명 -> 특정 컨테이너만 빌드
docker-compose start
docker-compose start 컨테이너명
docker-compose restart
docker-compose restart 컨테이너명
docker-compose stop
docker-compose stop 컨테이너명
docker-compose down