Docker Compose Service 관리 완벽 가이드! Container 실행·중지·업데이트 방법 알아보기

Docker Compose에서 가장 중요한 개념은 Service 관리입니다.

Docker Compose는 여러 Container를 개별적으로 관리하는 것이 아니라 Service 단위로 관리합니다.

기존 Docker 방식:

Container 하나씩 관리

↓

docker run

↓

docker stop

↓

docker restart

문제:

  • Container가 많아질수록 복잡
  • 명령어 증가
  • 설정 관리 어려움

Docker Compose 방식:

Service 정의

↓

docker compose 명령 실행

↓

여러 Container 자동 관리

예:

services:

  web:

    image: nginx


  database:

    image: mysql

실행:

docker compose up

결과:

web Service

↓

nginx Container 실행


database Service

↓

mysql Container 실행

이번 글에서는 Docker Compose Service 개념부터 실행, 중지, 재시작, 업데이트, Scale 관리까지 실제 서버 운영에 필요한 Service 관리 방법을 알아보겠습니다.

Docker Compose Service란 무엇인가?

Service는 Docker Compose에서 Container를 정의하는 관리 단위입니다.

쉽게 설명하면:

Service

↓

Container 생성 규칙

입니다.

예:

services:

  nginx:

    image: nginx

구조:

nginx Service

↓

nginx Container

Service는 Container의 설정 정보를 저장합니다.

포함 정보:

  • 사용할 Image
  • Port
  • Volume
  • Environment
  • Network
  • Restart 정책

Docker Compose Service 목록 확인하기

현재 프로젝트 Service 확인:

docker compose config --services

결과:

nginx

database

redis

현재 실행 중인 Service:

docker compose ps

결과:

NAME

STATUS

PORT

Docker Compose Service 실행 방법

전체 Service 실행:

docker compose up

백그라운드 실행:

docker compose up -d

동작:

docker-compose.yml 확인

↓

Service 생성

↓

Container 실행

특정 Service만 실행:

docker compose up nginx

결과:

nginx Service만 실행

Docker Compose Service 중지 방법

전체 Service 종료:

docker compose stop

특정 Service 종료:

docker compose stop nginx

결과:

Container 종료

↓

데이터 유지

중요:

stop은 Container를 삭제하지 않습니다.

Docker Compose Service 삭제 방법

Container와 Network 삭제:

docker compose down

결과:

Container 삭제

↓

Network 삭제

Volume 유지:

Database 데이터 유지

Volume까지 삭제:

docker compose down -v

주의:

Volume 삭제

↓

Database 데이터 삭제 가능

Docker Compose Service 재시작

전체 재시작:

docker compose restart

특정 Service:

docker compose restart nginx

활용:

  • 설정 변경 적용
  • 오류 Container 복구
  • 서비스 재시작

Docker Compose Service 로그 확인

전체 로그:

docker compose logs

특정 Service:

docker compose logs nginx

실시간 확인:

docker compose logs -f nginx

실무 활용:

서비스 장애 발생

↓

로그 확인

↓

원인 분석

Docker Compose Service 상태 확인

명령:

docker compose ps

예:

NAME

nginx

STATUS running

PORT 80

확인 항목:

  • 실행 상태
  • Port 연결
  • Container 이름

Docker Compose Service 업데이트 방법

Image 변경 후 업데이트:

docker compose pull

최신 Image 다운로드:

Registry

↓

새 Image 가져오기

재실행:

docker compose up -d

동작:

기존 Container 확인

↓

새 Image 적용

↓

Container 교체

Docker Compose Service Build 관리

직접 Build하는 경우:

docker-compose.yml:

services:

  app:

    build:

      context: .

Build:

docker compose build

실행:

docker compose up -d

흐름:

Source Code

↓

Dockerfile

↓

Image 생성

↓

Container 실행

Docker Compose Service Scale 관리

같은 Service를 여러 개 실행할 수 있습니다.

예:

docker compose up -d --scale app=3

결과:

app-1

app-2

app-3

활용:

  • 트래픽 증가
  • 부하 분산
  • API 서버 확장

주의:

Port 충돌이 발생할 수 있어 Reverse Proxy와 함께 사용하는 경우가 많습니다.

Docker Compose Service 의존성 관리

depends_on 사용:

services:

  app:

    image: node

    depends_on:

      - database


  database:

    image: mysql

실행:

Database 시작

↓

Application 시작

하지만:

Container 실행 완료

≠

Application 정상 실행

입니다.

Health Check와 함께 사용하는 것이 좋습니다.

Docker Compose Healthcheck 설정

예:

services:

  database:

    image: mysql


    healthcheck:

      test:

        - CMD

        - mysqladmin

        - ping


      interval: 10s

효과:

Database 상태 확인

↓

정상 확인 후 연결

Docker Compose Service 운영 예제

실제 서버 구조:

services:


  nginx:

    image: nginx

    restart: unless-stopped


  app:

    image: my-app:v1

    restart: unless-stopped


  mysql:

    image: mysql:8

    restart: unless-stopped

구조:

사용자

↓

Nginx

↓

Application

↓

MySQL

Docker Compose Service 운영 Best Practice

추천 설정:

Restart 설정

restart: unless-stopped

Version 고정

좋음:

image: mysql:8.0

나쁨:

image: mysql:latest

환경 분리

구성:

docker-compose.yml

docker-compose.prod.yml

.env

로그 관리

정기적으로 확인:

docker compose logs

자주 묻는 질문

Service와 Container 차이는 무엇인가요?

Service는 Container 생성 설정이고 Container는 실제 실행되는 객체입니다.

특정 Service만 실행할 수 있나요?

가능합니다.

docker compose up 서비스명

Service를 삭제하면 데이터도 삭제되나요?

Container만 삭제하면 Volume 데이터는 유지됩니다.

Production 서버에서 사용할 수 있나요?

가능합니다.

소규모~중간 규모 서버 운영에서 많이 사용됩니다.

마무리

Docker Compose Service 관리는 여러 Container를 안정적으로 운영하기 위한 핵심 기능입니다.

up, stop, down, restart, logs, scale, pull 같은 명령어를 활용하면 서버 환경을 효율적으로 관리할 수 있습니다.

다음 글에서는 Docker Compose에서 실제 실행되는 Container 관리 방법을 다루면서 Container 이름, 상태 확인, 접속, 명령 실행, 리소스 관리 방법을 자세히 알아보겠습니다.

댓글 남기기