在某个系统中,功能性的服务使用 docker stack deploy xxx 启动,某个数据库的服务单独使用 docker run xxx 启动,数据库服务没有将存储的位置挂载出来;结果重启了主机,再登录到主机重启服务的时候,发现之前数据库里的数据可能会消失(如果再使用 docker run 启动的话)。
解决办法1
数据丢失,一般最直接的想法是重新倒腾一次数据,但这样工作量很大。下次再启动的时候,把存储挂载到硬盘。不过也还有一个更为简单的方法。
解决办法2
可以使用 docker start container_name
再次将容器启动,这样的话数据还在。不过这也只是个临时的解决办法。
docker启动的镜像,如果不将数据映射出来的话,会存储在默认的volume;即使用docker restart xxx重启容器,那变动的数据也还是在的。
也就是说,在这个地方主机重启了,容器挂掉了(使用docker ps查看,其容器状态是Exited),但其实之前的数据还会在默认的volume下,只有删除掉容器的时候,变动的数据才会丢失。
其实最好的办法,就是将容器的存储目录挂载出来。另外,一般来讲,数据库服务不应该使用容器启动。
的产品是基于docker技术实现,拥有上万Linux镜像,灵活强大,可弹性扩展,**轻松搭建私有网络,可做集群服务。性价比高,容器云产品购买链接
提示:现在腾讯云新人点击注册然后实名认证后,可以点此一键领取2860元代金券,然后点此进入腾讯云活动页面参加优惠力度非常大的腾讯云3年和5年时长服务器活动,一次性买多年,免得续费贵,这样就可以获得最大的优惠折扣,省钱。
版权声明:xxxxxxxxx;
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态