[Docker] Docker Compose 설치 & 개념 정리

2025. 2. 7. 08:00·Dev/Docker

Docker Compose 설치 & 개념 정리
Docker Compose 설치 & 개념 정리


도커 컴포즈란? 

Docker Compose는 단일 호스트 환경에서 여러 개의 컨테이너를 한 번에 정의하고 관리할 수 있는 도구입니다. 개발 환경에서 여러 개의 서비스를 쉽게 실행하고 연결할 수 있도록 도와줍니다. 예를 들어, 하나의 애플리케이션을 실행하려면 데이터베이스, 웹 서버 등 여러 개의 서비스를 각각 설정하고 실행해야 하는 번거로움이 있다. 하지만 Docker Compose를 사용하면 이러한 서비스들을 한 번에 실행하고 손쉽게 관리할 수 있다.


도커 컴포즈 사용 목적

사용 목적 설명
일관된 환경 제공 하나의 YAML 파일에서 여러 컨테이너를 정의하고 실행하여 복잡한 설정 과정을 단순화할 수 있음.
팀 협업 최적화 공유 가능한 설정 파일을 통해 개발 환경을 통일하고, 협업 시 일관된 환경을 유지할 수 있음.
다중 컨테이너 관리 여러 개의 컨테이너를 하나의 설정 파일(docker-compose.yml)로 정의하고 실행
환경별 유연한 설정 환경 변수 지원을 통해 다양한 운영 환경에서도 동일한 설정을 적용할 수 있도록 유연하게 구성 가능.
서비스 간 원활한 연결 컨테이너 간 네트워크 설정을 자동화하여 웹 서버, DB 등 여러 서비스가 쉽게 연동될 수 있도록 지원.

도커 컴포즈 설치

현재 Docker Compose의 최신 버전은 V2이며, Docker CLI에 기본적으로 통합되었기 때문에 apt 패키지 관리자를 통해 손쉽게 설치할 수 있습니다. V2부터는 독립 실행형이 아닌 Docker CLI 플러그인으로 제공되며, docker compose 명령어로 실행할 수 있습니다.

# 기존 docker-compose 제거
$ sudo apt-get remove docker-compose -y

# Docker Compose 플러그인 설치
$ sudo apt install docker-compose-plugin

# 설치 확인
$ docker compose version

도커 컴포즈 파일 

docker-compose.yml 파일은 YAML 형식으로 작성되며, 여러 개의 컨테이너를 정의하는 설정 파일입니다. 이를 통해 여러 개의 컨테이너를 손쉽게 실행하고 중지할 수 있습니다

도커 컴포즈 기본구조

다음은 가장 기본적인 docker-comopose.yml 파일 예제 입니다.

t version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 123!!00

구성 요소 설명

  • version: 도커 컴포즈 파일의 버전을 지정합니다.
  • services: 여러 개의 컨테이너(서비스)를 정의하는 영역입니다.
  • web: 웹 서버 역할을 하는 컨테이너(서비스)입니다.
    • image: 사용할 도커 이미지를 지정합니다. 여기서는 nginx:latest 이미지를 사용합니다.
    • ports: 컨테이너와 호스트 간의 포트 매핑을 설정합니다. (8080 → 80 포트로 매핑)
  • db: 데이터베이스 역할을 하는 컨테이너입니다.
    • image: mysql:5.7 이미지를 사용합니다.
    • environment: MySQL 환경 변수를 설정합니다. (MYSQL_ROOT_PASSWORD 지정)

도커 컴포즈 실행 방법

아래 명령어를 사용하여 docker-compose.yml 파일을 실행하면 설정된 모든 컨테이너가 한꺼번에 실행됩니다.

docker-compose.yml 파일 실행

$ docker-compose up -d
  • -d 옵션: 백그라운드에서 실행되도록 설정

실행된 컨테이너 확인

$ docker ps

 컨테이너 중지

$ docker-compose down

로그 확인

$ docker-compose logs

#특정 서비스 로그 확인
$ docker-compose logs [서비스명]

 마무으리

이번 글에서는 Docker Compose를 활용하는 방법을 다뤄보았습니다. 도커 초심자로서 하나씩 배워가며 직접 실습해보니, 컨테이너 관리에 대한 개념을 보다 명확하게 이해할 수 있었습니다. 앞으로도 도커에 대해 꾸준히 공부하며, 배운 내용을 문서로 정리해 나가려 합니다. 💪

이 글이 저처럼 도커를 처음 시작하는 분들에게 조금이나마 도움이 되길 바랍니다. 🙏

저작자표시 비영리 변경금지 (새창열림)

'Dev > Docker' 카테고리의 다른 글

[Docker] Docker 초보 탈출! 명령어 총 정리  (0) 2025.02.13
[Docker] 컨테이너 라이프 사이클 & CLI  (0) 2025.02.11
[Docker] Docker 기초 이론  (0) 2025.02.06
[Docker] 포테이너(Portainer) 설치 & 개념 정리  (1) 2025.02.06
[Docker] Ubuntu 24.04 Docker 설치  (0) 2025.02.05
'Dev/Docker' 카테고리의 다른 글
  • [Docker] Docker 초보 탈출! 명령어 총 정리
  • [Docker] 컨테이너 라이프 사이클 & CLI
  • [Docker] Docker 기초 이론
  • [Docker] 포테이너(Portainer) 설치 & 개념 정리
Code Ninja
Code Ninja
초보 개발자의 성장 기록을 담아, 어렵지 않게 풀어쓰는 기술 블로그를 운영하고 있습니다.
  • Code Ninja
    Beautiful Code
    Code Ninja
  • 전체
    오늘
    어제
    • 분류 전체보기 (26)
      • Project (11)
        • Home Server (5)
        • Tistory (6)
        • 블로그 자동포스팅 (0)
      • Dev (12)
        • Typescript (4)
        • Docker (6)
        • DB (0)
        • React (0)
        • Linux (2)
        • Github (0)
      • 자기계발 & 라이프 해킹 (3)
  • hELLO· Designed By정상우.v4.10.3
Code Ninja
[Docker] Docker Compose 설치 & 개념 정리
상단으로

티스토리툴바