老哥们, 这句话我读不太懂, 具体是什么意思啊?

2021-06-04 07:23:14 +08:00
 ca1123
"但是容器的 Volumes 设计是围绕 Union FS 镜像层提供持久存储,数据安全缺乏保证"

为什么"围绕 Union FS 镜像层提供持久存储"就会"数据安全缺乏保证"?
2858 次点击
所在节点    Docker
4 条回复
kop1989
2021-06-04 08:59:46 +08:00
意思是,容器是随时可能被停止,崩溃甚至是删除的。

如果容器被停止时,数据库写入未完毕,那么就有可能导致数据库文件损坏。
ca1123
2021-06-06 21:48:58 +08:00
@kop1989 那你会把数据库放在容器里么?
ca1123
2021-06-06 23:06:05 +08:00
@kop1989 另外老哥, "(1)数据库程序与数据分离

  如果使用 Docker 跑 MySQL,数据库程序与数据需要进行分离,将数据存放到共享存储,程序放到容器里。如果容器有异常或 MySQL 服务异常,自动启动一个全新的容器。另外,建议不要把数据存放到宿主机里,宿主机和容器共享卷组,对宿主机损坏的影响比较大。"

这段话里面, 放在共享存储里为什么就安全了呢, 共享存储不就是个文件系统么? 和 Union FS 有啥本质区别呀. 如果是因为数据库程序异常导致数据异常, 那用不同的文件系统也解决不了问题呀. 重启的数据库程序看到的还是损坏的数据. 怎么 Union FS 恢复不了, 网络文件系统就能恢复呢?
xupefei
2021-06-07 06:18:47 +08:00
> 数据库程序与数据需要进行分离,将数据存放到共享存储,程序放到容器里。如果容器有异常或 MySQL 服务异常,自动启动一个全新的容器。

这里说的应该是让你把 var/mysql 映射一个 volume 出来,免得删 container 的时候把数据库删掉。

> 另外,建议不要把数据存放到宿主机里,宿主机和容器共享卷组,对宿主机损坏的影响比较大。

我估计这里是让你把 volume 通过 nfs ceph 啥的存到异地去,省得 docker 的机器坏了丢数据。但这方案太花钱了,在绝大多数情况下不现实。

另外这中文狗屁不通,建议原作者重新学习语文。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/781256

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX