컨테이너를 강제로 종료하거나 특정 시그널을 전달하고자 할 때 필수로 알아야 할 명령어입니다.
🛑 docker container kill 명령어 완전 정복
컨테이너를 즉시 종료하거나 원하는 시그널로 조절하는 고급 도커 명령어!
📌 개요
docker container kill은 실행 중인 컨테이너에 종료 시그널(SIGNAL)을 전송하여 강제로 종료하는 CLI 명령어입니다.
기본적으로는 SIGKILL 시그널을 보내 즉시 중단시키며, SIGTERM, SIGINT 등 원하는 시그널을 지정하여 보낼 수도 있습니다.
⚠️ docker stop은 종료까지 유예 시간이 있지만, docker kill은 즉시 종료입니다.
✅ 기본 문법
docker container kill [OPTIONS] CONTAINER [CONTAINER...]
혹은 짧게:
docker kill [OPTIONS] CONTAINER [CONTAINER...]
예시:
docker kill mycontainer
→ mycontainer라는 컨테이너에 SIGKILL을 전송하여 즉시 종료
🔧 옵션 설명
옵션 설명
--signal, -s | 보낼 시그널을 지정 (기본값: SIGKILL) |
예시: SIGTERM 전송
docker kill -s SIGTERM mycontainer
→ 정상 종료를 유도할 수 있음 (trap으로 처리하는 경우 유용)
⚙️ 주요 시그널 종류
시그널 설명
SIGKILL | 즉시 종료 (kill -9) |
SIGTERM | 종료 요청 (애플리케이션에 유예 시간 제공) |
SIGINT | Ctrl+C 시그널 |
SIGHUP | 재시작 요청 |
SIGUSR1, SIGUSR2 | 사용자 정의 신호 (프로세스에 따라 다르게 사용 가능) |
💡 docker stop과의 차이점
항목 docker stop docker kill
기본 시그널 | SIGTERM 후 10초 뒤 SIGKILL | SIGKILL (기본) |
유예 시간 | 있음 (10초 기본) | 없음 (즉시 종료) |
권장 용도 | 정상 종료 시도 | 응답 없는 컨테이너 강제 종료 |
즉, stop은 온화한 종료, kill은 무자비한 종료라고 생각하시면 됩니다.
🧪 실전 예시
1. 여러 컨테이너 동시 종료
docker kill web1 web2 worker
2. 컨테이너에 사용자 정의 시그널 보내기
docker kill -s SIGUSR1 myapp
→ 앱이 SIGUSR1을 trap하고 로그를 내보내거나 리로드할 수도 있음
3. 포그라운드 실행 중인 컨테이너 종료
docker run --name test-nginx -d nginx
docker kill test-nginx
🧠 언제 쓰면 좋을까?
- 컨테이너가 응답하지 않고 멈춰버렸을 때
- 특정 시그널을 컨테이너 안 애플리케이션에 전달할 때
- stop 명령어가 제대로 동작하지 않을 때
- CI/CD 환경에서 비정상 상태의 컨테이너를 정리하고자 할 때
⚠️ 주의사항
항목 설명
실행 중이 아닌 컨테이너에는 사용할 수 없음 | running 상태일 때만 가능 |
데이터 손실 가능성 | 종료 전에 flush하지 못한 데이터는 사라질 수 있음 |
상태 확인 필요 | 종료 후 docker ps -a로 상태 확인 필수 |
🔄 상태 확인 명령어
docker ps -a --filter "name=mycontainer"
또는 상태 코드 확인:
docker inspect -f '{{ .State.ExitCode }}' mycontainer
📦 관련 명령어 비교
명령어 설명
docker stop | 컨테이너를 종료 (우아하게) |
docker kill | 컨테이너를 강제 종료 |
docker exec | 컨테이너 안에서 명령 실행 |
docker inspect | 컨테이너 상태 상세 조회 |
docker logs | 실행 중인 로그 확인 |
✅ 결론
docker container kill은 평소에는 자주 쓰지 않지만, **컨테이너가 말 안 들을 때 반드시 필요한 “비상 버튼”**입니다.
또한, 단순 종료뿐 아니라 시그널 제어를 통해 애플리케이션 동작을 유도하거나 커스텀 로직 실행도 가능하므로 DevOps 환경에서 필수 도구로 자리 잡고 있습니다.
🚨 언제나 kill은 마지막 수단! stop으로 안 될 때만 사용하세요.
Docker Container Inspect : 실행중인 컨테이너의 상세 정보를 알고 싶다.
Docker Container Inspect : 실행중인 컨테이너의 상세 정보를 알고 싶다.
컨테이너 상태, 설정, IP 주소 등 모든 내부 정보를 JSON 형태로 추출하고 싶을 때 사용하는 필수 명령어입니다.🧐 docker container inspect 완전 정복컨테이너 내부 정보, JSON으로 샅샅이 확인해보자!
jjig810906.tistory.com
'Program' 카테고리의 다른 글
Docker docker container prune – 안 쓰는 컨테이너 한 번에 정리하기. (쓰레기 정리하자~) (1) | 2025.06.06 |
---|---|
Docker docker container port 명령어. 포트 매핑 방법. (0) | 2025.06.06 |
Docker Container Inspect : 실행중인 컨테이너의 상세 정보를 알고 싶다. (0) | 2025.06.06 |
Docker Container Export : 컨테이너를 .tar 파일로 백업하는 방법 (내 컨테이너는 소중하니까~) (0) | 2025.06.06 |
docker container exec 명령어 완벽 가이드 (0) | 2025.06.06 |