특정 타임아웃으로 컨테이너 재시작
이 단계에서는 특정 타임아웃으로 Docker 컨테이너를 다시 시작하는 방법을 배우게 됩니다. 컨테이너를 다시 시작하면 Docker 는 컨테이너의 주 프로세스에 중지 신호 (기본적으로 SIGTERM) 를 보냅니다. 프로세스가 특정 기간 내에 종료되지 않으면 Docker 는 강제로 중지하기 위해 kill 신호 (SIGKILL) 를 보냅니다. 기본 타임아웃은 10 초입니다. docker restart 명령과 함께 -t 또는 --time 플래그를 사용하여 이 타임아웃을 조정할 수 있습니다.
이전 단계에서 생성한 my-nginx 컨테이너를 사용해 보겠습니다. 먼저, 컨테이너가 실행 중인지 확인합니다.
docker ps
컨테이너가 실행 중이지 않으면 다시 시작합니다.
docker start my-nginx
이제 5 초의 타임아웃으로 컨테이너를 다시 시작합니다. 즉, Docker 는 중지 신호를 보낸 후 kill 신호를 보내기 전에 5 초 동안 대기합니다.
docker restart -t 5 my-nginx
재시작 명령이 실행되었음을 나타내는 컨테이너 이름이 출력되는 것을 볼 수 있습니다.
타임아웃의 효과를 관찰하려면 일반적으로 기본 10 초보다 더 오래 걸려 정상적으로 종료되는 컨테이너가 필요합니다. 그러나 이 연습에서는 명령 구문에 중점을 둡니다.
20 초와 같이 더 긴 타임아웃으로 다시 시작해 보겠습니다.
docker restart --time 20 my-nginx
다시, 컨테이너 이름이 출력되는 것을 볼 수 있습니다.
-t 또는 --time 옵션은 종료 전에 정리 작업을 수행하는 데 더 많은 시간이 필요한 컨테이너에서 실행되는 애플리케이션이 있는 경우 유용합니다.
재시작 후 컨테이너가 여전히 실행 중인지 확인하려면 docker ps를 사용하십시오.
docker ps
my-nginx가 Up 상태로 나열되는 것을 볼 수 있습니다.