팥빵 먹으면서 코딩하는 블로그

[Docker] 컨테이너 종료 방법 및 가능성 본문

study/DOCKER

[Docker] 컨테이너 종료 방법 및 가능성

김팥빵_ 2025. 3. 23. 20:41

의문) docker-compose up -d로 실행한 컨테이너는 어떻게 종료해야 할까

  • 컨테이너는 그냥 놔둬도 되지만, 불필요한 리소스 사용을 피하려면 종료하는 것이 좋다.
  • 현재 컨테이너 내에서 Kafka를 실행하고 있음을 감안

 

컨테이너를 꺼야 하는 이유

  1. 불필요한 리소스 소모
    • Kafka와 같은 서비스는 계속 실행되며 CPU, RAM을 사용한다.
    • Docker 컨테이너가 백그라운드에서 실행 중이라 모니터링 없이 방치될 수도 있다.
  2. 포트 충돌 가능성
    • Kafka는 9092 포트를 사용한다.
    • 다음 번 실습할 때 이미 해당 포트가 사용 중이라 실행 오류가 발생할 가능성이 있다.
  3. Docker 용량 관리
    • 컨테이너가 계속 실행되면 로그 파일이 쌓이고 디스크 공간 차지.

 

실습 종료 후 컨테이너 정리하는 방법

1) 컨테이너 정지 (일시 중지)

docker-compose down
  • 컨테이너가 종료된다.
  • 그렇지만 데이터는 유지됨 (예: Kafka 토픽, 메시지)

 

2) 컨테이너 중지 후 완전히 삭제

docker-compose down --volumes
  • 컨테이너뿐만 아니라 볼륨(데이터)까지 삭제된다.
  • 다시 docker-compose up -d 하면 새로운 환경에서 시작할 수 있다.

 

3) 개별 컨테이너만 중지

docker ps	// 실행 중인 컨테이너 확인 docker stop <CONTAINER_ID>
  •  특정 컨테이너만 중지하고 싶다면 컨테이너 ID를 사용하여 종료 가능.

 

부록) Kafka 데이터까지 삭제해야 할까?

  • 다시 실습할 예정이면 docker-compose down만 실행하고,
  • 완전히 초기화하고 싶다면 docker-compose down --volumes 실행한다.

 

Q) 하지만 다음 실습을 위해 컨테이너 정리하고 싶어요

docker-compose down --volumes && docker system prune -a -f
  • 컨테이너, 이미지, 네트워크 등 모든 Docker 리소스를 삭제한다.
  • 다음 실습 시 처음부터 깨끗한 환경에서 실행이 가능하다.