簡體   English   中英

使docker容器永遠運行,同時能夠優雅地停止

[英]Make docker container run forever while being able to gracefully stop

我正在嘗試創建一個docker容器。 它應該在后台永遠運行。 但每當我按下Ctrl + C或docker stop ,它應該關閉而不會浪費任何時間。

我目前的代碼

#RUN trap 'echo $excode' EXIT HUP INT QUIT PIPE TERM
ENTRYPOINT while :; do read; done
#ENTRYPOINT trap "exit 1" SIGTERM SIGHUP && tail -f /dev/null & wait && exit 0

我可以讓它永遠運行但由於某種原因我的腳本沒有收到TRAP事件。 任何線索如何解決這個問題。

您可以考慮在STOPSIGNAL中使用(使用docker 1.9+)STOPSIGNAL。

STOPSIGNAL指令設置將發送到容器的系統調用信號以退出。
此信號可以是與內核的系統調用表中的位置匹配的有效無符號數,例如9,或SIGNAME格式的信號名,例如SIGKILL。

但是對於管理這種信號的腳本,請參閱“ 在Docker容器中捕獲信號 ”及其program.sh來編排其他非PID1進程。

使用標志啟動容器: -t-i

docker run -it --name=<container_name> <image>:<tag>

這將使您可以使用ctrl+c退出

有關詳細信息,請參閱此docker問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM