[Docker] 도커 컴포즈(Docker compose) (개념,설치,명령어)

TATamo·2023년 11월 19일
0

도커 컴포즈(Docker compose)

도커 컴포즈는 시스템 구축과 관련된 명령어를 하나의 텍스트 파일(정의 파일)에 기재해, 명령어 한번에 시스템 전체를 실행하고 종료와 폐기까지 한번에 하도록 도와주는 도구이다. (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

0개의 댓글