
Docker 컨테이너가 중지되었을 때 호스트에서 bash 스크립트를 시작할 수 있는지 알고 싶습니다.
예를 들어 컨테이너가 중지되면 서비스도 중지하고 싶습니다.
SIGTERM 신호를 포착하는 것이 가능하며 그런 다음 컨테이너에서 일부 bash 명령을 실행할 수 있다는 것을 확인했습니다. 호스트 시스템에서 SIGTERM 신호를 포착한 다음 스크립트를 시작하는 방법이 있을 수 있습니다.
답변1
노력하다도커 이벤트적절한 필터를 사용합니다. 즉
$ docker events --filter 'container=alpine-bash' --filter 'event=stop'
> 2019-07-26T17:25:35.944807432+04:00 container stop 5db8ba01c4ca26b4417bd080d9022b74893a865eefe22dc987f8d18fda104f39 (image=yikaus/alpine-bash, name=alpine-bash)
답변2
다음 명령 을 사용할 수 있습니다 docker container wait
.
$ docker container wait --help
Usage: docker container wait CONTAINER [CONTAINER...]
Block until one or more containers stop, then print their exit codes
사용 예는 다음과 같습니다.
$ docker run -d --rm --name test-wait busybox sleep 10
9ca77ac5121690110e8fdf58e73583918fa9b1a5de56ab89eb70cc89be97f3fa
$ docker container wait test-wait
0
두 번째 명령은 컨테이너의 절전 명령이 완료될 때까지 중단되었습니다.