Docker Compose는 Dockerized 애플리케이션을 정의하고 실행하기 위한 도구입니다.
여러개의 컨테이너를 정의하고 실행하기 위한 YAML 파일로 작성됩니다.
Dockerized란 Docker 컨테이너 내에서 실행되는 애플리케이션 또는 서비스를 의미합니다. 즉, Docker 컨테이너를 사용하여 애플리케이션을 패키징하고, 배포하며 실행하는 것을 의미
Docker docs
에서 가장 권장하는 방법은 Docker Desktop 을 설치하는 것이다
Docker Desktop 이 설치되어진 경우 말고 Docker Engine 및 Docker CLI 가 이미 설치되어 있는 경우는 다음과 같다
저장소를 설정하여야 한다. 저장소 설정의 경우 다음 링크를 통해 확인
패키지 인덱스를 업데이트 및 최신 버전의 Docker Compose 설치
# Ubuntu 기준 설명
$ sudo apt-get update
$ sudo apt-get install docker-compose-plugin
버전을 확인 Docker Compose 설치 확인
$ docker compose version
Compose CLI 플러그인을 다운로드하고 설치
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
바이너리에 실행 권한 적용
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
# 또는 모든 사용자를 위한 Compose 설치
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
설치 확인
$ docker compose version
Docker Compose 의 최신 버전은 2023년 6월 말부터 Compose V1은 더 이상 지원되지 않으며 모든 Docker Desktop 버전에서 제거됨으로 Docker Compose V2 라고 봐도 무방하다.
Docker Compose V2 의 경우 명령어에서 변화가 있어 알아 두어야 한다.
docker-compose up
# v1 에서의 사용 명령어
docker compose up
# v2 에서의 사용 명령어
Docker Compose YAML 파일을 작성해서 Docker Compose 를 사용할 준비를 합니다. 이 파일은 여러 개의 컨테이너를 정의하고 각 컨테이너가 실행되는 방식을 설정합니다.
# Docker Compose YAML 파일의 예시
version: "3.9"
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: "redis:alpine"
version
: Compose 파일의 버전services
: 컨테이너들의 설정을 정의web
과 redis
라는 두 개의 컨테이너를 정의$ docker compose up
# Docker Compose YAML 파일에서 정의된 모든 컨테이너를 빌드하고 실행한다
# 기본적으로 docker-compose.yml 파일을 찾는다
# -d detech 옵션을 사용하여 백그라운드 실행 가능
# 특정 다른 이름의 파일을 사용해야 할 경우
# -f 또는 --file 옵션을 사용 docker compose 가 사용할 파일 이름 지정
$ docker compose -f docker-compose-dev.yml up
# 여러번 사용하여 파일 추가 가능
$ docker compose -f docker-compose.yml -f docker-compose.dev.yml up
docker-compose down
명령어를 사용합니다.$ docker compose down
# docker compose 실행 중인 모든 컨테이너를 중지하고, 컨테이너, 네트워크 및 볼륨과 같은 모든 Docker 자원을 삭제
$ docker compose ps
# yml 없으면 나오는 경고문
# no configuration file provided: not found
Thank you for good information. In the next post, tell us about what you felt while studying. If you have something you want to say to people who want to become devops engineers, let's talk about it together.