타임아웃 설정 후 Docker Desktop 재시작
이 단계에서는 타임아웃과 함께 Docker 데몬을 다시 시작하는 방법을 배우게 됩니다. systemctl restart 명령 자체에는 일부 Docker 명령 (예: docker stop --time) 과 같은 내장된 타임아웃 매개변수가 없지만, 타임아웃의 개념은 서비스를 관리할 때 중요합니다.
systemctl의 컨텍스트에서 재시작 중에 발생하는 중지 및 시작 작업에는 서비스 유닛 파일 내에 정의된 자체 내부 타임아웃이 있습니다. 서비스가 이러한 정의된 타임아웃 내에 중지되거나 시작되지 않으면 systemd(시스템 및 서비스 관리자) 는 일반적으로 오류를 보고합니다.
예를 들어, systemctl restart가 실행될 때 Docker 데몬이 바쁘고 종료하는 데 너무 오래 걸리면 systemd가 결국 프로세스를 종료하고 실패를 보고할 수 있습니다. 마찬가지로, 데몬이 구성된 타임아웃 내에 시작되지 않으면 시작 작업이 실패합니다.
전체 재시작 프로세스에 대해 systemctl restart 명령 자체에 타임아웃을 직접 지정할 수는 없지만, 재시작 중에 서비스 상태의 동작을 관찰하여 타임아웃이 관련될 수 있는 시나리오를 시뮬레이션할 수 있습니다.
Docker 서비스를 다시 시작해 보겠습니다.
sudo systemctl restart docker
명령을 실행한 직후 상태를 빠르게 확인할 수 있습니다. "활성 (실행 중)" 상태로 돌아가기 전에 잠시 "중지 중" 또는 "활성화 중" 상태를 볼 수 있습니다.
systemctl status docker
서비스가 이러한 상태를 전환하는 데 걸리는 시간은 Docker 서비스 유닛에 대해 구성된 내부 타임아웃의 영향을 받습니다. 서비스가 중지 또는 시작 중에 멈추면 systemd가 해당 타임아웃을 적용합니다.
예를 들어, 중지 작업이 시간 초과되면 systemctl status docker 출력 또는 시스템 로그 (journalctl -u docker) 에서 오류 메시지를 볼 수 있습니다.
전체 systemctl restart 작업에 대한 타임아웃을 설정하는 직접적인 명령줄 옵션은 없지만, 기본 중지 및 시작 프로세스가 타임아웃의 영향을 받는다는 것을 이해하는 것은 서비스 관리 문제를 해결하는 데 중요합니다. 재시작이 지속적으로 실패하는 경우, 타임아웃 오류에 대한 서비스 로그를 조사하는 것이 좋은 시작점입니다.