Docker 为何要做持久化( persistance)? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
rpre
V2EX    程序员

Docker 为何要做持久化( persistance)?

  •  
  •   rpre 2016-10-08 23:14:58 +08:00 6372 次点击
    这是一个创建于 3340 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在使用 Docker 的时候,有没有可能完全不需要做持久化? 情况 1 ,如果只将 docker 看做一个虚拟机用,一直只启动一个 container ,这种情况是肯定不需要做持久化的。(虽然这种方式失去了使用 docker 的意义所在) 情况 2 ,如果每次 run docker 的时候,都使用-d 选项,让每个 container 一直存在,每次新请求都从这个已有的 container 中去解析,那么也不需要做持久化。 情况 3 ,假设我用“复制”的同步方式,搭建一个 Mysql 的集群,每个集群的节点都跑在 docker 上,那么当一个节点挂了之后,重启后其他节点的内容会复制过来,那么即使这个容器没有做持久化,也不影响业务。

    当然 best practice 中已经写明要通过 volume 或 commit 方式做持久化。但是在思考这些问题的时候,确实上面的几个想法也说的通,所以请大家帮忙分析一下,或者举出一些实际中经常遇到的情况,来反驳上面的几条假设。

    先谢谢各位了

    15 条回复    2016-10-09 17:41:11 +08:00
    lightening
        1
    lightening  
       2016-10-08 23:31:48 +08:00
    主进程挂了 container 就没了
    binux
        2
    binux  
       2016-10-08 23:35:08 +08:00
    你的假设都是没有持久化需求,那当然不要持久化了。
    imxieke
        3
    imxieke  
       2016-10-08 23:35:41 +08:00
    关注一波:, 不过第 1 个有没有考虑宕机问题?或者容器内部出错需要重启的问题?
    rpre
        4
    rpre  
    OP
       2016-10-09 00:59:34 +08:00
    @binux 感谢回复。我的问题正式,持久化需求,在实际业务中,一般体现在哪里。
    @imxieke 同意。
    crysislinux
        5
    crysislinux  
       2016-10-09 01:01:02 +08:00
    @rpre 要保存数据就是持久化,包括数据库,文件
    crysislinux
        6
    crysislinux  
       2016-10-09 01:03:56 +08:00
    没注意你提到了 MySQL 。。
    ldbC5uTBj11yae5
        7
    ldbC5uTBj11yaeh5  
       2016-10-09 01:14:15 +08:00 via Android
    docker ,他家路子最近歪得厉害。

    网络和存储一直是它家老大难问题,现在根本没花力气解决这些,最终只会沦落大部分时候只作为为程序员的开发和运维工具存在。
    yeasy
        8
    yeasy  
       2016-10-09 08:09:32 +08:00
    一个是持久化,一个是性能~
    xiqingongzi
        9
    xiqingongzi  
       2016-10-09 08:17:41 +08:00 via Android
    不做持久化很简单啊,容器只处理业务逻辑,数据都放在外面。
    Citrus
        10
    Citrus  
       2016-10-09 08:22:54 +08:00 via iPhone
    数据库不做持久化?心这么大?你能保证某天你的所有容器不会先后挂掉来不及复制么?如果你认为你的数据丢了也无所谓,那当我没说。。。丢了无所谓的数据本身就不需要持久化。
    denghongcai
        11
    denghongcai  
       2016-10-09 10:09:20 +08:00
    MySQL 不持久化,机房断电了呢?异地容灾光纤断了呢?要往最坏的方向去想
    killerv
        12
    killerv  
       2016-10-09 10:52:40 +08:00
    MySQL 容器不需要做持久化处理吧,把 MySQL 的数据存储到容器外面
    wizardoz
        13
    wizardoz  
       2016-10-09 12:42:49 +08:00
    我用的不多,但是我遇到有数据的容器都是额外挂载数据目录进去.
    因为我不知道要怎么处理数据放在容器里导致容器越来越大的情况.
    /tr>
    guyskk
        14
    guyskk  
       2016-10-09 16:13:13 +08:00 via Android
    复制并不能避免人为操作的错误。例如管理员突然删除了产品数据,或者部署了错误版本的代码导致搞乱了部分或者全部数据。所以必须要有一个能够让我们从这种场景中恢复数据的备份。

    --- Python web 开发, p181

    刚看书看到这段,大概是这个原因
    mritd
        15
    mritd  
       2016-10-09 17:41:11 +08:00
    有些没看太懂,不过我想说的是确实很多东西需要持久化,比如程序日志,这些日志量很大,而且我们还配合了日志追踪 zipkin ,包括 ELK 分析等等;还有比如你 docker 里跑得是一个 图片上传的 模块,那么这些图片文件肯定要持久化啊
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5039 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 09:35 PVG 17:35 LAX 01:35 JFK 04:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86