소개
Docker 컨테이너는 애플리케이션 배포 및 가상화에 강력한 도구입니다. 실행 중인 컨테이너를 올바르게 종료하는 방법을 이해하는 것은 효과적인 컨테이너 관리에 필수적입니다. 이 튜토리얼에서는 Docker 컨테이너를 중지하고 제거하는 다양한 기술을 탐색하여 개발자 및 시스템 관리자가 깨끗하고 효율적인 컨테이너화된 환경을 유지하는 데 도움을 줄 것입니다.
Docker 컨테이너는 애플리케이션 배포 및 가상화에 강력한 도구입니다. 실행 중인 컨테이너를 올바르게 종료하는 방법을 이해하는 것은 효과적인 컨테이너 관리에 필수적입니다. 이 튜토리얼에서는 Docker 컨테이너를 중지하고 제거하는 다양한 기술을 탐색하여 개발자 및 시스템 관리자가 깨끗하고 효율적인 컨테이너화된 환경을 유지하는 데 도움을 줄 것입니다.
Docker 컨테이너는 존재의 다양한 단계를 나타내는 명확하게 정의된 수명주기를 가지고 있습니다. 이러한 상태를 이해하는 것은 효과적인 컨테이너 관리에 필수적입니다.
| 상태 | 설명 | 일반적인 전환 |
|---|---|---|
| 생성됨 | 컨테이너가 초기화되었지만 실행 중이 아닙니다. | 시작 가능 |
| 실행 중 | 컨테이너가 활발하게 실행 중입니다. | 중지 또는 일시 중지 가능 |
| 일시 중지 | 컨테이너의 프로세스가 일시적으로 중지되었습니다. | 재개 또는 중지 가능 |
| 중지됨 | 컨테이너가 실행을 완료하거나 수동으로 중지되었습니다. | 다시 시작 가능 |
| 종료됨 | 컨테이너의 주 프로세스가 완료되었습니다. | 제거 가능 |
docker create --name mycontainer ubuntu:22.04
docker start mycontainer
docker stop mycontainer
LabEx 에서는 Docker 워크플로우를 최적화하고 시스템 성능을 개선하기 위해 이러한 컨테이너 수명주기 원칙을 숙달하는 것을 권장합니다.
Docker 는 실행 중인 컨테이너를 중지하는 여러 가지 방법을 제공하며, 각 방법에는 특정 사용 사례와 동작이 있습니다.
| 방법 | 명령어 | 동작 | 유예 시간 |
|---|---|---|---|
| docker stop | docker stop |
SIGTERM, 그 다음 SIGKILL 전송 | 기본 10 초 |
| docker kill | docker kill |
즉시 종료 | 즉시 종료 |
| docker pause | docker pause |
컨테이너 프로세스 일시 중지 | 되돌릴 수 있음 |
## 특정 컨테이너 중지
docker stop container_name
## 여러 컨테이너 중지
docker stop container1 container2 container3
## 30초 유예 시간으로 중지
docker stop -t 30 container_name
## 컨테이너를 즉시 종료
docker kill container_name
docker stop을 우선적으로 사용합니다.LabEx 에서는 컨테이너 수명주기를 효과적으로 관리하기 위해 이러한 종료 기술을 이해하는 것을 권장합니다.
| 신호 | 이름 | 동작 | 사용 사례 |
|---|---|---|---|
| SIGTERM | 종료 | 정상 종료 | 권장 기본값 |
| SIGKILL | 종료 | 즉시 종료 | 응답하지 않는 컨테이너 강제 중지 |
| SIGSTOP | 중지 | 프로세스 일시 중지 | 일시적인 중지 |
## 사용자 지정 신호로 종료
docker kill --signal=SIGTERM container_name
## 중지된 모든 컨테이너 제거
docker container prune
#!/bin/bash
## 자동화된 컨테이너 정리 스크립트
docker ps -q | xargs -r docker stop
docker container prune -f
## 필터로 컨테이너 중지
docker stop $(docker ps -f "label=environment=production" -q)
## 시간 제한 메커니즘으로 종료
docker stop -t 30 container_name
docker stop container_name 2>&1 | tee container_stop.log
LabEx 에서는 강력한 시스템 관리를 위해 세심한 컨테이너 종료 기술을 이해하는 것을 강조합니다.
Docker 컨테이너 종료를 마스터하는 것은 현대 소프트웨어 개발 및 DevOps 실무에서 필수적인 기술입니다. 컨테이너를 중지하고 제거하는 다양한 방법을 이해함으로써 시스템 리소스를 효과적으로 관리하고, 애플리케이션 수명주기를 제어하며, 원활한 Docker 워크플로우를 유지할 수 있습니다. 정상 종료 명령어를 사용하든 강제 종료 기술을 사용하든, 이러한 전략은 최적의 컨테이너 관리를 보장합니다.