본문 바로가기

가상 머신/Docker

[ 도커 / Docker ] docker-compose 사용하기

반응형

도커(Docker)의 docker-compose는 여러 컨테이너로 구성된 애플리케이션을 정의하고 실행하기 위한 도구입니다.
docker-compose를 사용하면 YAML 파일을 통해 애플리케이션의 서비스, 네트워크, 볼륨 등을 정의하고, 단일 명령으로 여러 컨테이너를 일괄적으로 관리할 수 있습니다.

주요 docker-compose 명령어

1. docker-compose up

docker-compose up 명령어는 docker-compose.yml 파일에 정의된 서비스를 시작합니다. 필요한 이미지를 빌드하고 컨테이너를 생성한 후 네트워크를 설정합니다.

사용법

docker-compose up [OPTIONS] [SERVICE...]

주요 옵션

  • -d, --detach : 백그라운드에서 컨테이너를 실행합니다.
  • --build : 컨테이너를 시작하기 전에 이미지를 빌드합니다.
  • --force-recreate : 기존 컨테이너를 삭제하고 새로 생성합니다.

예시

docker-compose up -d

위 명령어는 docker-compose.yml 파일에 정의된 모든 서비스를 백그라운드에서 실행합니다.

2. docker-compose down

docker-compose down 명령어는 docker-compose.yml 파일에 정의된 모든 서비스를 중지하고 컨테이너, 네트워크, 볼륨 등을 제거합니다.

사용법

docker-compose down [OPTIONS]

주요 옵션

  • -v, --volumes : 익명 볼륨을 포함하여 모든 볼륨을 제거합니다.
  • --rmi : 사용된 이미지를 삭제합니다. (local, all)

예시

docker-compose down

위 명령어는 모든 서비스를 중지하고 생성된 리소스를 제거합니다.

3. docker-compose build

docker-compose build 명령어는 docker-compose.yml 파일에 정의된 서비스의 이미지를 빌드합니다.

사용법

docker-compose build [OPTIONS] [SERVICE...]

주요 옵션

  • --no-cache : 빌드할 때 캐시를 사용하지 않습니다.
  • --pull : 빌드하기 전에 이미지를 항상 풀(pull)합니다.

예시

docker-compose build

위 명령어는 모든 서비스를 빌드합니다.

4. docker-compose ps

docker-compose ps 명령어는 현재 상태의 컨테이너 목록을 출력합니다.

사용법

docker-compose ps [OPTIONS] [SERVICE...]

예시

docker-compose ps

위 명령어는 현재 실행 중인 모든 서비스의 상태를 출력합니다.

5. docker-compose stop

docker-compose stop 명령어는 실행 중인 컨테이너를 중지합니다.

사용법

docker-compose stop [SERVICE...]

예시

docker-compose stop

위 명령어는 모든 실행 중인 서비스를 중지합니다.

6. docker-compose restart

docker-compose restart 명령어는 실행 중인 컨테이너를 재시작합니다.

사용법

docker-compose restart [OPTIONS] [SERVICE...]

주요 옵션

  • -t, --timeout : 컨테이너를 중지하고 다시 시작하기 전에 기다릴 시간을 지정합니다.

예시

docker-compose restart

위 명령어는 모든 서비스를 재시작합니다.

7. docker-compose logs

docker-compose logs 명령어는 서비스의 로그를 출력합니다.

사용법

docker-compose logs [OPTIONS] [SERVICE...]

주요 옵션

  • -f, --follow : 실시간 로그를 팔로우합니다.
  • --tail : 마지막 N줄의 로그만 출력합니다.

예시

docker-compose logs -f

위 명령어는 모든 서비스의 실시간 로그를 출력합니다.

8. docker-compose exec

docker-compose exec 명령어는 실행 중인 컨테이너 안에서 명령어를 실행합니다.

사용법

docker-compose exec [OPTIONS] SERVICE COMMAND [ARGS...]

주요 옵션

  • -d, --detach : 백그라운드에서 명령어를 실행합니다.
  • --privileged : 명령어를 프리빌리지 모드에서 실행합니다.

예시

docker-compose exec myservice /bin/bash

위 명령어는 myservice 컨테이너 안에서 /bin/bash 쉘을 실행합니다.

9. docker-compose config

docker-compose config 명령어는 구성 파일을 검증하고 출력합니다.

사용법

docker-compose config [OPTIONS]

주요 옵션

  • -q, --quiet : 유효성 검사를 수행하고 유효하지 않으면 오류를 출력합니다.
  • --services : 서비스 이름만 출력합니다.
  • --volumes : 볼륨 이름만 출력합니다.

예시

docker-compose config

위 명령어는 docker-compose.yml 파일의 구성을 검증하고 출력합니다.

10. docker-compose pull

docker-compose pull 명령어는 서비스에 필요한 이미지를 도커 레지스트리에서 다운로드합니다.

사용법

docker-compose pull [OPTIONS] [SERVICE...]

주요 옵션

  • --ignore-pull-failures : 이미지 풀 실패를 무시합니다.
  • --parallel : 병렬로 이미지를 다운로드합니다.

예시

docker-compose pull

위 명령어는 모든 서비스에 필요한 이미지를 다운로드합니다.

이 명령어들은 docker-compose를 사용하여 여러 컨테이너로 구성된 애플리케이션을 관리하고 배포하는 데 필수적인 도구들입니다.
docker-compose.yml 파일을 작성하여 애플리케이션의 서비스, 네트워크, 볼륨 등을 정의하고, 위의 명령어들을 통해 효율적으로 관리할 수 있습니다.

반응형