因为重启 docker,服务起不来,把开发环境搞崩了,严严实实背了口锅 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
a663
V2EX    程序员

因为重启 docker,服务起不来,把开发环境搞崩了,严严实实背了口锅

  •  
  •   a663 2018-11-22 22:43:19 +08:00 via Android 7968 次点击
    这是一个创建于 2524 天前的主题,其中的信息可能已经有所发展或是发生改变。

    诶,今晚因为领导要我加一个应用的 ci 给开发和测试环境,就在本地搭建了一个私有 docker registry,搭建完成后得把开发节点的 docker 配置修改后重启。 就 system ctl docker restart (正确做法应该是先 stop 再 start ),结果某些应用没有正确退出,只是容器退出了,就导致 restart 结束后部分 container 没跑起来,还有部分跑起来了但访问不到。 然后这里还有最重要的是 gitlab 服务在这里。

    说一下公司现状,刚来公司不久,之前没有运维,也没人做任何的运维规划,各种乱象,比如 gitlab 搭建在开发节点(只有一台开发节点),然后开发节点的很多 container 退出后不删除的大把,还有就是有些没用的服务乱起,各种。 之前有提议说想把 gitlab 迁移,领导没反馈,就先留着,想等以后在做了。

    然后自己也一直不想去理开发环境,结果这次 ci 的任务就给搞出问题了。 然后,由于不确定哪些应用有没有正确起来的,就和领导说明天一大早计划迁移 gitlab,清掉开发节点的所有 container,让开发重新部署一遍,貌似现在感觉氛围不太对了。 好尴尬啊,自己的锅,跑不了了

    之前一直觉得开发环境哪天肯定会崩,没曾想是自己搞崩的……还是自己不够细心,很自责

    32 条回复    2018-11-23 17:38:40 +08:00
    Dingo
        1
    Dingo  
       2018-11-22 22:47:19 +08:00
    楼主加油,好人一生平安
    alvin666
        2
    alvin666  
       2018-11-22 22:48:26 +08:00 via Android
    restart 不是先 stop 再 start 吗?...
    就提示不也是先 stop 成功再 start 成功吗
    zhongyiio
        3
    zhongyiio  
       2018-11-22 22:49:22 +08:00 via Android
    同情,要是 container 没有配 restart:always 就瞎了
    johnniang
        4
    johnniang  
       2018-11-22 22:51:14 +08:00
    只要数据还在都不是事儿
    a663
        5
    a663  
    OP
       2018-11-22 22:55:58 +08:00 via Android
    @johnniang 数据还在,然后得麻烦开发一遍,还需要群里沟通,头儿有点不太开心,我表示理解他的心情
    duola
        6
    duola  
       2018-11-22 22:56:39 +08:00
    千万不要把数据弄丢了。
    a663
        7
    a663  
    OP
       2018-11-22 22:58:59 +08:00 via Android
    @zhongyiio 有些配了有些没陪,开发自己玩的,然后容器的使用也比较粗糙,他们是先把容器停了,在把代码文件在容器内替换,然后重启
    a663
        8
    a663  
    OP
       2018-11-22 22:59:36 +08:00 via Android
    @alvin666 至少 stop 失败了你可以知道的
    a663
        9
    a663  
    OP
       2018-11-22 23:00:09 +08:00 via Android
    @duola 没丢没丢,做有备份
    zhongyiio
        10
    zhongyiio  
       2018-11-22 23:03:35 +08:00 via Android
    @a663 看起来你们需要梳理一下构建和部署流程了,乱搞出事迟早的
    a663
        11
    a663  
    OP
       2018-11-22 23:04:37 +08:00 via Android
    @zhongyiio 很想推,真的很想,但有些情不是我在把控
    alvin666
        12
    alvin666  
       2018-11-22 23:05:24 +08:00 via Android
    学到了...以后用 systemctl stop &&systemctl start
    wweir
        13
    wweir  
       2018-11-22 23:19:30 +08:00 via Android
    @a6 骚操作,挺容器替换文件,这是手动找那个很深的目录替换?
    a663
        14
    a663  
    OP
       2018-11-22 23:28:05 +08:00 via Android
    @wweir 代码是 mount 进去的,尴尬
    xuanbg
        15
    xuanbg  
       2018-11-22 23:29:28 +08:00
    没启动的容器 start 一下不行吗?
    momocraft
        16
    momocraft  
       2018-11-22 23:30:14 +08:00
    restart 不可以 stop+start 可以是为什么
    afc
        17
    afc  
       2018-11-22 23:32:23 +08:00
    我不知道你的容器里面跑了什么,在我看来只要 MySQL 这些数据库能启动,不可能程序会因为非正常退出就无法启动。还有,你重启了 docker,你只要看 docker ps -a 里面 Exited 时间一致的那一批 container,就是你重启前在跑的 container,至于不能启动的,慢慢查日志。
    woodfish
        18
    woodfish  
       2018-11-23 00:40:01 +08:00
    容器看制作者质量,有些满足幂等性的随挺随起,有些不满足幂等的挺了再起就又重新初始化了。用容器前先测试它的幂等性
    mason961125
        19
    mason961125  
       2018-11-23 00:53:35 +08:00
    很好奇为什么这些人写 Dockerfile 的时候不考虑万一容器崩了重启的情况?而且好像似乎也没有做数据持久化?
    chuanzhangACE
        20
    chuanzhangACE  
       2018-11-23 00:53:35 +08:00 via Android
    @a663 我们 docker 数据也是直接挂载的,代码通过 jinkens 替换,所以想请教一下你们现在 docker 使用细节,你说的 docker 使用粗糙指的什么
    likuku
        21
    likuku  
       2018-11-23 01:03:33 +08:00
    看起来也没有标准操作流程手册之类 [ 如此这般,责任每个人都有啦 ]...虽然你们是 dev 也干了 ops 的活...
    ywgx
        22
    ywgx  
       2018-11-23 08:10:08 +08:00 via Android
    典型的大部分互联网企业特点,运维管理,部署结构混乱
    18660103530
        23
    18660103530  
       2018-11-23 08:24:14 +08:00
    我也搞蹦过,只要数据卷还在就好。另外我那次搞蹦的是 docker 服务器直接没了,但是 daemon.json 还在,重新安装了 docker 服务容器全部自己回来了。
    bigbyto
        24
    bigbyto  
       2018-11-23 09:12:52 +08:00 via iPhone
    人在江湖飘,难免有背锅的时候。感觉楼主还是蛮有担当的,过去就好了
    saltxy
        25
    saltxy  
       2018-11-23 09:19:55 +08:00
    @chuanzhangACE 我们是 jenkins 构建代码打包到 image 里,push image 到自建的 registry,生产服务器直接移除老的 container 启动新的 container
    lincolnhuang
        26
    lincolnhuang  
       2018-11-23 09:41:05 +08:00
    现在运维就是一个背锅的,感觉 LZ 以后还会背。。所以现在运维难招啊,没人肯做
    zhouzm
        27
    zhouzm  
       2018-11-23 10:05:50 +08:00
    做好数据持久化,使用 docker-compose,容器崩了怕什么?

    我经常 docker-compose down && docker-compose up -d
    buhi
        28
    buhi  
       2018-11-23 10:32:08 +08:00
    mount 代码是什么骚操作...
    jwdlh
        29
    jwdlh  
       2018-11-23 10:46:28 +08:00
    不请运维好歹请个备份啊
    okwork
        30
    okwork  
       2018-11-23 11:09:51 +08:00
    一台机器上容器太多了,互相依赖的话,真的很慌。像比较重的服务,还是单独拎出来独立部署吧
    anubu
        31
    anubu  
       2018-11-23 11:36:30 +08:00
    容器不是虚拟机。实际应用中,对于容器,启动、停止、重启是小概率事件,创建、删除、重建是大概率事件。在容器化一个应用时,主要考虑的是能不能方便的在其他 docker 主机上重建这个应用容器。这应该就是我们使用容器的目的吧,方便的部署和迁移。
    一点经验:
    1. 不要使用 docker run 来创建和启动一个容器,而是使用 docker-compose。使用 yaml 文件定义的容器更清晰,更容易被复制重建。
    2. 充分考虑需要数据持久化的应用数据,显式的指定挂载卷路径并做好备份。
    3. 不要在容器中修改非持久化保存的数据。
    march13th
        32
    march13th  
       2018-11-23 17:38:40 +08:00
    楼主所说的环境,很符合目前我当下的环境...没有运维,我(开发) 自己搞的一套 docker 测试环境和生产环境,然后也是比较乱。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     982 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 105ms UTC 22:29 PVG 06:29 LAX 15:29 JFK 18:29
    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