- 여러 컨테이너를 일괄적으로 정의하고 실행할 수 있는 툴 이다.
- 컨테이너화 된 애플리케이션을 통합 관리 할 수 있음.
- yml, yaml 확장자를 가짐. => docker-compose.yml / docker-compose.yaml
ex) version:"3"
ex)
services:
web:
image: nginx
db:
images: mysql
여기서, web과 db는 container name을 의미함.
ex)
web:
build: . -> docker-compose.yml 과 동일한 디렉토리에 위치한 Dockerfile을 사용하여 web 이름의 컨테이너를 빌드함.
ex)
web:
image: nginx
ex)
app:
image: node:14-alpine
command: sh -c "npm install && npm run dev"
ex)
web:
images: nginx
port:
- 80 (외부랜덤 123456:내부 80)
- 8080:80 (외부 8080:내부 80)
ex)
environment:
- MYSQL_ROOT_PASSWORD: testok1234
- MYSQL_DATABASE: test
- MYSQL_USER: test_user
- MYSQL_PASSWORD: testtest1234
ex)
web:
image: wordpress:latest
links:
- "db:database" -> [컨테이너명]:[별칭]
db:
image: mysql
ex)
web:
build: .
expose:
- "8888"
ex)
web:
image: mysql
volumes:
- db-data:/var/lib/mysql/data
ex)
services:
web:
build: .
depends_on:
- db
db:
image: mysql
- no : 재시작 X
- always: 컨테이너 수동 종료가 아니면 항상 재시작함.
- on-failure: 오류가 있을 시 재시작함.
ex)
db:
image: mysql
restart: always
docker-compose up : 컨테이너 생성 및 시작
docker-compose up -d : 컨테이너 생성 및 시작
docker-compose ps : 컨테이너 목록 표시
docker-compose scale mysql=2 : 해당 compose 파일의 정의된 mysql 컨테이너 갯수를 2개로 설정.
docker-compose stop : 컨테이너를 모두 종료
docker-compose down : 컨테이너 모두 종료 및 삭제
docker-compose logs : 컨테이너 로그 출력
docker-compose pause : 컨테이너 정지
docker-compose unpause : 컨테이너 재개
docker-compose port : 컨테이너 공개 포트 번호 표시
docker-compose config : compose 설정을 확인
docker-compose kill : 실행중인 컨테이너 강제 종료
docker-compose rm : 컨테이너 삭제
docker-compose exec : 실행중인 컨테이너에 어떠한 명령어를 날림
docker-compose run : 서비스 컨테이너의 특정 명령어를 일회적으로 실행할 때 사용