我有一个docker容器,运行在ubuntu服务器上的redis服务器跟踪一个计数器,该计数器也由一个容器中运行的节点js应用程序增加。重新启动主机时丢失了Docker容器数据
它运行良好,当我启动我的Ubuntu主机的所有容器redis + nodeapp都自动启动。
访问一个url,我可以用节点app增加计数器。 我看到在redis服务器中的计数器增加了一个redis客户端和网页。
通过我有一个问题:
如果我重新启动主机那么当容器重启(我用
restart:always
建立我的容器重新启动它们在主机重新启动)计数器在redis服务器下降到0(计数器没有保存)。我注意到,如果我增加计数器的值到一定值时,让我们说20,如果我停止从主机的容器的Redis和开始该容器再次计数器保存至20和重新启动主机后,计数器不是从0开始,而是先前的值为20,因此计数器已保存。
所以我的问题是如何在主机重新启动时保存数据(计数器在redis容器中)?为什么在我的情况下保存数据的唯一方法是使用docker命令停止容器?
听起来像Redis的不刷新到磁盘。此行为可以自定义,请参阅以下容器文档:https://github.com/jamesbrink/docker-redis –