기본 신호 및 타임아웃을 사용하여 컨테이너 중지
이 단계에서는 기본 신호와 타임아웃을 사용하여 실행 중인 Docker 컨테이너를 중지하는 방법을 배우게 됩니다. 컨테이너를 중지하면 Docker 는 컨테이너 내에서 실행 중인 주 프로세스에 신호를 보냅니다. 기본적으로 Docker 는 SIGTERM 신호를 보내 프로세스에 안전하게 종료하도록 지시합니다. 프로세스가 기본 타임아웃 기간 (일반적으로 10 초) 내에 종료되지 않으면 Docker 는 SIGKILL 신호를 보내 프로세스를 강제로 종료합니다.
먼저, 계속 실행될 컨테이너를 실행해 보겠습니다. ubuntu 이미지를 사용하고 컨테이너를 계속 활성 상태로 유지하는 간단한 명령을 실행합니다.
docker pull ubuntu
ubuntu 이미지가 가져와지고 있음을 나타내는 출력을 볼 수 있습니다.
Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
이제 백그라운드에서 실행되도록 detached 모드 (-d) 로 ubuntu 컨테이너를 실행하고, 무기한으로 실행되도록 하는 명령 (예: tail -f /dev/null) 을 실행합니다.
docker run -d ubuntu tail -f /dev/null
이 명령어는 컨테이너 ID 를 출력합니다.
<container_id>
docker ps 명령어를 사용하여 컨테이너가 실행 중인지 확인할 수 있습니다.
docker ps
ubuntu 컨테이너가 Up 상태로 나열된 것을 볼 수 있습니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" About a minute ago Up About a minute ago <container_name>
이제 docker stop 명령어를 사용하여 이 실행 중인 컨테이너를 중지해 보겠습니다. 컨테이너 ID 또는 컨테이너 이름을 사용할 수 있습니다. <container_id>를 실행 중인 컨테이너의 실제 ID 로 바꿉니다.
docker stop <container_id>
이 명령어는 중지된 컨테이너 ID 를 출력합니다.
<container_id>
docker stop 명령어를 실행한 후 컨테이너는 SIGTERM 신호를 받습니다. Docker 는 컨테이너가 안전하게 중지될 때까지 기본 타임아웃 (10 초) 을 기다립니다. 해당 시간 내에 중지되지 않으면 SIGKILL을 보냅니다.
docker ps를 다시 실행하여 컨테이너가 중지되었는지 확인할 수 있습니다.
docker ps
ubuntu 컨테이너는 docker ps의 출력 (실행 중인 컨테이너만 표시) 에 더 이상 나열되지 않아야 합니다. 중지된 컨테이너를 포함한 모든 컨테이너를 보려면 docker ps -a를 사용합니다.
docker ps -a
ubuntu 컨테이너가 Exited 상태로 나열된 것을 볼 수 있습니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" About a minute ago Exited (0) About a minute ago <container_name>
이것은 기본 신호 및 타임아웃을 사용하여 컨테이너가 성공적으로 중지되었음을 확인합니다.