_Book_k8sInfra
_Book_k8sInfra copied to clipboard
[Ch4/P223 ] 도커 --restart 중에 on-failure 사용시 이미지 별로 결과가 다름
문제 정의:
도커 --restart 옵션을 좀 더 구체적으로 설명함
변경 내용:
on-failure 옵션을 사용하면, 비정상 종료된 컨테이너만 도커가 시작함
(따라서 디스트로리스와 같은 패키지가 제한적인 이미지들은 비정상 종료된 메시지를 받기 어렵기 때문에 모든 경우에 재시작하게 됨)
AS-IS
| 값 | 컨테이너 비정상 종료 시 | 도커 서비스 시작 시 |
|---|---|---|
| on-failure | 컨테이너를 재시작함 | 컨테이너를 시작함 |
TO-BE
| 값 | 컨테이너 비정상 종료 시 | 도커 서비스 시작 시 |
|---|---|---|
| on-failure | 컨테이너를 재시작함 | 비정상 종료시 컨테이너를 시작함 |
[부가 설명]
on-failure 옵션에 따른 동작은 다르게 나타나며, 이는 컨테이너 내부의 프로세스가 종료 시그널을 어떻게 처리하여 반환하고 죽었는가에 따라 다릅니다. systemctl restart docker, reboot, VM ACPI 는 사용자가 명시적으로 종료를 명령하였는데 nginx 컨테이너와 httpd 컨테이너는 이 명령에 exit 0 으로 종료되는 것을 strace 로 확인하였고, java 컨테이너는 exit 143 으로 종료하는 것을 확인하였습니다.
현재 테스트 결과를 정리하면 다음과 같습니다.
훈님!! 늘 도움이 되는 정보 주셔서 감사합니다!