V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ca1123
V2EX  ›  Docker

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

  •  
  •   ca1123 · 2021-06-04 07:23:14 +08:00 · 3019 次点击
    这是一个创建于 1287 天前的主题,其中的信息可能已经有所发展或是发生改变。
    "但是容器的 Volumes 设计是围绕 Union FS 镜像层提供持久存储,数据安全缺乏保证"

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

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

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

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

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

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

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

    另外这中文狗屁不通,建议原作者重新学习语文。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2377 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:33 · PVG 23:33 · LAX 07:33 · JFK 10:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.