我在Ubuntu 14.10 x64的Docker容器中運行redis-server。如果我通過phpRedisAdmin訪問redis數據庫,請進行一些編輯,然後將它們保存到磁盤,關閉容器,然後重新啓動它,一切正常 - 編輯的redis鍵存在且正確。但是,如果我編輯鍵,然後關閉容器,然後重新啓動它,編輯不會粘住。Docker Redis容器有序關閉
很明顯,dump.rdb文件在容器關閉時不會自動保存。我想我可以通過在/etc/rc6.d中插入一個/etc/init.d腳本來解決這個問題。但是,我想知道 - 爲什麼關閉redis容器不能有序關閉容器中的正在運行的進程?畢竟,當我重新啓動服務器(服務器&容器運行Ubuntu 14.10)時,我不必顯式提交redis數據庫更改到磁盤。
你是如何停止集裝箱? – 2015-04-06 09:32:24
通過發出「docker stop -t 0 containerid」。自從發佈這個問題後,我發現了一件事,即在Docker容器中,通常的rullevel處理不會發生。 – DroidOS 2015-04-06 09:39:03
如果你使用'-t 0',你會說在發出一個sigkill之前給它0秒,這不會讓它有時間來清理它自己。相反,刪除該論點或增加到「-t 30」或什麼的。另外,是redis pid 1 - 信號是否被正確代理? – 2015-04-06 09:55:07