도커 컴포즈는 시스템 구축과 관련된 명령어를 하나의 텍스트 파일(정의 파일)에 기재해, 명령어 한번에 시스템 전체를 실행하고 종료와 폐기까지 한번에 하도록 도와주는 도구이다. (YAML에 정의된다)
윈도우 환경에서는 도커 설치시 자동으로 설치된다. 리눅스에서 설치방법은 다음과 같다.
docker compose 다운로드
sudo curl -L "<https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$>(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose
설치 버전 확인
docker-compose --version
명령어 | 설명 |
---|---|
up | 컨테이너 생성/시작 |
ps | 컨테이너 목록 표시 |
logs | 컨테이너 로그 출력 |
run | 컨테이너 실행 |
start | 컨테이너 시작 |
stop | 컨테이너 정지 |
restart | 컨테이너 재시작 |
pause | 컨테이너 일시 정지 |
unpause | 컨테이너 재개 |
port | 공개 포트 표시 |
config | 구성 확인 |
kill | 실행 중인 컨테이너 강제 정지 |
rm | 컨테이너 삭제 |
down | 리소스 삭제 |
# yaml 파일 포멧 버전
version: '3.8'
# 파일에서 쓸 볼륨을 선언
volumes:
[volume_name]:
external: true # 외부에 있는 [volume_name] 볼륨 사용
name: [volume_name]
# 생성될 컨테이너들의 묶음
services:
# 컨테이너를 여러개 띄우고 싶다면 아래에 추가하면 된다.
# 컨테이너 이름
mysql-container:
# 사용할 이미지
image: mysql
# 사용할 포트
ports:
- 3306:3306
# 사용할 볼륨
volumes:
# 도커 볼륨 사용
- todo_mysql:/var/lib/mysql
# Bind Mount 방식
# - ./db/conf.d:/etc/mysql/conf.d
# - ./db/data:/var/lib/mysql
# - ./my.cnf:/etc/mysql/my.cnf
# 환경 변수 파일. `.env` 파일에 정의된 정보를 가져온다
env_file: .env
# 환경 변수
environment:
- TZ=Asia/Seoul
restart: always
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --character-set-client-handshake=FALSE