[TIL] Docker Compose 개념
by 달쿨도커 컴포즈 개념
다중 컨테이너 애플리케이션을 정의하고 관리하기 위한 도구로 도커가 하나의 컨테이너를 실행하고 관리하는 데 초점을 맞춘다면, 도커 컴포즈는 여러 컨테이너를 동시에 설정하고 실행할 수 있도록 설계되었다. docker-compose.yml 파일을 사용하여 애플리케이션의 각 컨테이너 서비스, 네트워크, 볼륨 등의 환경을 설정할 수 있다.
파일 구조 예시
- version: Docker Compose 파일의 버전을 지정합니다.
- services: 애플리케이션의 각 서비스를 정의합니다.
- web, app, db: 각각의 서비스 이름
- web: nginx 서버를 실행하며 호스트의 8080 포트를 컨테이너의 80 포트에 연결
- app: 애플리케이션 컨테이너로 로컬 디렉토리를 컨테이너 내부로 마운트
- db: PostgreSQL 데이터베이스 컨테이너를 실행
- image: 서비스를 실행할 Docker 이미지를 지정
- build: Dockerfile이 있는 디렉토리 경로를 지정하여 이미지를 빌드
- ports: 호스트와 컨테이너 간의 포트를 매핑
- depends_on: 서비스가 먼저 실행되어야 하는 순서를 지정
- environment: 컨테이너의 환경 변수를 설정
언제 사용하면 좋을까?
주로 여러 컨테이너가 필요한 복잡한 환경에서 유용하다. 웹 애플리케이션을 개발할 때 데이터베이스, 애플리케이션 서버, 캐시 서버 등 여러 환경이 필요하다면 각각의 컨테이너를 개별적으로 실행하는 대신 Docker Compose를 사용해 한 번에 실행하고 관리할 수 있고, 작성된 docker-compose.yml 파일을 공유하면 누구나 동일한 환경에서 애플리케이션을 실행할 수 있기 때문에 팀원 간의 협업 환경을 쉽게 맞출 수 있다. 이처럼 컨테이너가 여러개인 환경이나 팀 협업에서 사용하면 좋다.
실습
https://github.com/muncool39/study-docker
'TIL' 카테고리의 다른 글
[TIL] 메시지 브로커 (1) | 2024.12.04 |
---|---|
[TIL] Redis의 주요 캐싱 전략 (0) | 2024.12.02 |
[TIL] Docker 개념 (0) | 2024.11.28 |
[TIL] 배포 서버 시간을 한국 시간으로 설정 (0) | 2024.11.27 |
[TIL] 스레드와 스레드 안전성 (0) | 2024.11.26 |
블로그의 정보
note
달쿨