Docker Compose Container 관리 완벽 가이드! 실행 상태 확인 및 내부 접속 방법 알아보기

Docker Compose에서 Service가 Container를 생성하기 위한 설정이라면, Container는 실제로 실행되는 작업 단위입니다.

쉽게 구분하면:

Service

↓

Container 생성 규칙


Container

↓

실제로 실행되는 Docker 환경

입니다.

Docker Compose를 운영하다 보면 다음과 같은 작업이 자주 필요합니다.

  • Container 상태 확인
  • Container 내부 접속
  • 실행 명령 전달
  • 로그 확인
  • Container 재생성
  • 장애 원인 분석

기본 Docker 방식:

docker ps
docker exec
docker logs
docker restart

Docker Compose 방식:

docker compose ps
docker compose exec
docker compose logs
docker compose restart

프로젝트 단위로 Container를 관리할 수 있습니다.

이번 글에서는 Docker Compose Container의 기본 개념부터 상태 확인, 내부 접속, 명령 실행, 재생성, 장애 대응 방법까지 서버 운영에 필요한 내용을 알아보겠습니다.

Docker Compose Container란 무엇인가?

Container는 Docker Image를 실행한 실제 인스턴스입니다.

구조:

Docker Image

↓

Container 생성

↓

Application 실행

예:

services:

  web:

    image: nginx

실행:

docker compose up -d

결과:

nginx Image

↓

nginx Container 생성

↓

서비스 실행

Docker Compose Container 목록 확인

현재 실행 중인 Container 확인:

docker compose ps

예:

NAME              STATUS

project-web-1     running

project-db-1      running

확인 가능:

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

전체 Docker Container 확인:

docker ps

Docker Compose Container 시작하기

전체 Container 실행:

docker compose start

특정 Container 실행:

docker compose start web

차이:

start

↓

기존 Container 다시 시작

반면:

docker compose up

은 필요하면 Container를 새로 생성합니다.

Docker Compose Container 중지하기

전체 중지:

docker compose stop

특정 Container:

docker compose stop web

결과:

Container 정지

↓

데이터 유지

다시 시작:

docker compose start

Docker Compose Container 재시작하기

전체 재시작:

docker compose restart

특정 Container:

docker compose restart web

활용:

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

Docker Compose Container 내부 접속하기

서버 운영에서 가장 많이 사용하는 기능입니다.

명령:

docker compose exec 서비스명 bash

예:

docker compose exec web bash

결과:

Host

↓

Container 내부 Shell 접속

Container 안에서:

ls
cd /app
cat config.yml

확인 가능합니다.

Bash가 없는 Container 접속 방법

Alpine 기반 Image는 bash가 없을 수 있습니다.

오류:

bash: not found

해결:

docker compose exec web sh

차이:

bash

↓

기능 많은 Shell


sh

↓

기본 Shell

Docker Compose Container 명령 실행

Container 내부에서 특정 명령 실행:

docker compose exec web ls

예:

docker compose exec database mysql -u root

활용:

  • Database 접속
  • 설정 확인
  • 파일 검사

Docker Compose Container 로그 확인

전체 로그:

docker compose logs

특정 Container:

docker compose logs web

실시간:

docker compose logs -f web

서버 장애 발생 시:

서비스 오류

↓

Container Log 확인

↓

원인 분석

Docker Compose Container 상태 확인

상세 정보:

docker compose ps

Docker 기본 정보:

docker inspect container-name

확인:

  • IP 주소
  • Network
  • Volume
  • Environment
  • Mount 정보

Docker Compose Container 재생성

설정 변경 후 Container를 다시 만들어야 하는 경우:

docker compose up -d --force-recreate

동작:

기존 Container 삭제

↓

새 설정 적용

↓

새 Container 생성

활용:

  • Port 변경
  • Environment 변경
  • Volume 변경

Docker Compose Container 삭제

전체 종료:

docker compose down

Container만 삭제:

docker compose rm

강제 삭제:

docker compose rm -f

주의:

Volume 데이터는 별도로 관리됩니다.

Docker Compose Container 리소스 확인

CPU, Memory 확인:

docker stats

예:

CONTAINER

CPU %

MEM USAGE

활용:

  • 성능 확인
  • Memory Leak 확인
  • 서버 장애 분석

Docker Compose Container Health 확인

Healthcheck 설정:

services:

  app:

    image: my-app

    healthcheck:

      test:

        - CMD

        - curl

        - localhost:3000

      interval: 30s

확인:

docker compose ps

결과:

healthy

unhealthy

Docker Compose Container 환경 변수 확인

확인:

docker compose config

Container 내부:

docker compose exec app env

확인:

  • Database 연결 정보
  • Application 설정
  • Secret 적용 여부

Docker Compose Container 파일 복사

Host → Container:

docker compose cp test.txt app:/tmp

Container → Host:

docker compose cp app:/tmp/test.txt .

활용:

  • 설정 파일 전달
  • 로그 가져오기
  • 데이터 확인

Docker Compose Container 운영 예제

구성:

services:

  app:

    image: my-app:v1

    restart: unless-stopped


  db:

    image: mysql:8

    restart: unless-stopped

운영 관리:

상태 확인:

docker compose ps

로그 확인:

docker compose logs -f app

접속:

docker compose exec app sh

재시작:

docker compose restart app

Docker Compose Container 장애 대응 순서

서버 문제가 발생하면 다음 순서로 확인합니다.

1단계:

Container 상태 확인

docker compose ps

2단계:

로그 확인

docker compose logs

3단계:

내부 접속

docker compose exec 서비스명 sh

4단계:

Resource 확인

docker stats

5단계:

재시작

docker compose restart

Docker Compose Container 관리 Best Practice

운영 서버 추천:

✅ Container 이름 규칙 관리
✅ Image Version 고정
✅ restart 정책 설정
✅ 로그 정기 확인
✅ Healthcheck 사용
✅ Resource 모니터링
✅ Volume 백업

자주 묻는 질문

Service와 Container는 같은 것인가요?

다릅니다.

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

Container 내부에 어떻게 들어가나요?

다음 명령을 사용합니다.

docker compose exec 서비스명 sh

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

Volume을 사용했다면 데이터는 유지됩니다.

운영 서버에서 Container 관리는 어떻게 하나요?

상태 확인, 로그 확인, 재시작, Resource 확인 순서로 관리합니다.

마무리

Docker Compose Container 관리는 실제 서버 운영에서 가장 자주 사용하는 기능입니다.

Container 상태 확인, 내부 접속, 로그 분석, 재시작, 장애 대응 방법을 익히면 Docker 기반 서버 관리 능력을 크게 향상시킬 수 있습니다.

다음 글에서는 Docker Compose에서 사용하는 Image 관리 방법을 다루면서 Image 다운로드, Build, 업데이트, 삭제, Version 관리 방법을 자세히 알아보겠습니다.

댓글 남기기