情景描述
在某个系统中,功能性的服务使用 docker stack deploy xxx
启动,某个国产数据库的服务单独使用 docker run xxx
启动,数据库服务没有将存储的位置挂载出来;
结果客户重启了服务器…再登录到服务器重启服务的时候,发现了一个问题,之前数据库里的数据可能会消失(如果再使用 docker run 启动的话)。
解决办法
尝试1
起初想的是数据肯定丢了,那就只能重新折腾一次数据了,但工作量太大了…
不过也没办法,下次再启动,把存储挂载到硬盘就好了,Orz
不过和同事交流了之后,发现了一个更为简单(但也不是永久的办法),见尝试2
尝试2
同事提到,可以使用 docker start container_name
再次将容器启动,这样的话数据还在。后面尝试了一下,果然数据还在……虽然也只是个临时的解决办法
后面想了一下,docker启动的镜像,如果不将数据映射出来的话,会存储在默认的volume;即使用docker restart xxx重启容器,那变动的数据也还是在的;也就是说在这个地方,服务器重启了,容器挂掉了(使用docker ps查看,其容器状态是Exited),但其实之前的数据还会在默认的volume下,只有删除掉容器的时候,变动的数据才会丢失。
验证测试
随便打包一个镜像,启动容器,创建一个文件,再停止,再启动,查看文件是否存在
# 启动容器 "ping 127.0.0.1" 3 seconds ago Up 2 seconds docker_run_test # 进容器增加文件 "ping 127.0.0.1" About a minute ago Exited (137) 12 seconds ago docker_run_test # 进去查看文件是否存在 "htmlcode"># stop / rm掉容器 "ping 127.0.0.1" 7 minutes ago Exited (137) 13 seconds ago docker_run_test "color: #ff0000">docker run的说明从官网看到,start命令的作用是:
Start one or more stopped containers
emmm,挺直白,没什么可说的
PS
其实最好的办法,就是将容器的存储目录挂载出来…另外,一般来讲似乎数据库服务不应该使用容器启动
总结
以上所述是小编给大家介绍的docker run启动的容器挂掉了数据怎么办,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 群星.2023-非凡医者影视原声带【华纳】【FLAC分轨】
- 《寻找弗兰基》全成就一览
- 《传说法师2》EA评测:不是亲生的不心疼
- 《射戮骑士》评测:“幸存者!去杀穿硬核地狱!”
- 群星《名声(黑胶CD)》[WAV+CUE]
- 梅艳芳《女人花》SACD[原抓WAV+CUE]
- 孙露《因为想念》【WAV+CUE】
- 罗艺恒《What Could've Been》[FLAC/分轨][130.04MB]
- 罗熙楷《笼中鸟Caged Bird》[320K/MP3][72.27MB]
- 罗熙楷《笼中鸟Caged Bird》[FLAC/分轨][191.82MB]
- 英雄联盟s14晋级四强队伍是哪些 S14全球总决赛四强战队介绍
- 魔兽世界怀旧服专家模式什么时候开 怀旧服专家模式开启时间介绍
- 魔兽世界永久60级哪个职业最强 魔兽世界永久60级职业推荐
- 上海Major赛事专属版显示器首次亮相PNL高校决赛
- 寻找中国“龙” 感受乐元素的“科普力”