docker container stop

docker container stop

docker container stop은 하나 이상의 실행 중인 컨테이너를 중지하는 명령이에요. 컨테이너를 제거하지 않고 멈추고 싶을 때 써요.

출처: 문서

본문

컨테이너 안의 메인 프로세스는 SIGTERM을 받고, 유예 기간(grace period) 후에 SIGKILL을 받아요. 첫 신호는 컨테이너의 Dockerfile의 STOPSIGNAL 지시문이나 docker run·docker create--stop-signal 옵션으로 바꿀 수 있어요.

사용법 (Usage)

docker container stop [OPTIONS] CONTAINER [CONTAINER...]

별칭 (Aliases)

별칭은 긴 명령 대신 쓸 수 있는 짧고 기억하기 쉬운 대안이에요.

docker stop

옵션 (Options)

옵션 기본값 설명
-s, --signal 컨테이너에 보낼 신호예요
-t, --timeout 컨테이너를 종료하기 전에 기다릴 시간(초)이에요

예제 (Examples)

$ docker stop my_container

신호로 컨테이너 중지하기 (-s, --signal)

--signal 플래그는 컨테이너가 종료되도록 시스템 콜 신호를 보내요. 이 신호는 SIG<NAME> 형식의 신호 이름(예: SIGKILL)이거나, 커널의 syscall 테이블 위치에 해당하는 부호 없는 숫자(예: 9)일 수 있어요. 사용 가능한 신호는 signal(7)을 참고해요.

기본적으로 사용할 신호는 이미지의 StopSignal로 정의돼요. 이는 이미지를 빌드할 때 STOPSIGNAL Dockerfile 지시문으로 설정하거나, 컨테이너를 만들 때 --stop-signal 옵션으로 구성할 수 있어요. 컨테이너에 신호가 구성되지 않으면 기본으로 SIGTERM이 사용돼요.

제한 시간으로 컨테이너 중지하기 (-t, --timeout)

--timeout 플래그는 사전 정의된(--signal) 시스템 콜 신호를 보낸 뒤 컨테이너가 중지할 때까지 기다릴 시간(초)을 설정해요. 제한 시간이 지나도 컨테이너가 종료되지 않으면 SIGKILL 신호로 강제 종료돼요. --timeout-1로 설정하면 제한 시간이 적용되지 않고 데몬이 컨테이너가 종료될 때까지 무기한 기다려요.

기본 제한 시간은 컨테이너를 만들 때 --stop-timeout 옵션으로 지정할 수 있어요. 컨테이너에 기본값이 구성되지 않으면 데몬이 결정하는데, Linux 컨테이너는 10초, Windows 컨테이너는 30초예요.

더 알아보기 (Learn more)