V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jdz
V2EX  ›  程序员

docker 对日常工作有帮助吗,普通后端开发

  •  
  •   jdz · 2019-12-08 08:13:55 +08:00 via Android · 11109 次点击
    这是一个创建于 1846 天前的主题,其中的信息可能已经有所发展或是发生改变。
    62 条回复    2019-12-09 20:01:03 +08:00
    reus
        1
    reus  
       2019-12-08 08:23:34 +08:00 via Android
    你用一下不就知道了,后端开发千差万别,有的有用有的没用
    jdz
        2
    jdz  
    OP
       2019-12-08 08:38:39 +08:00 via Android
    @reus 最普通的 Java 后端搬砖工,curd 那种
    cyhone
        3
    cyhone  
       2019-12-08 08:43:37 +08:00 via Android
    当然有用,k8s 以后会成为后端的部署运维标准,虽然不会覆盖所有的部署场景。
    不管目前主要使用的哪种语言,docker 都是要学习和了解的
    manami
        4
    manami  
       2019-12-08 08:44:14 +08:00
    当然有帮助。Build, Share, and Run Any App, Anywhere.
    manami
        5
    manami  
       2019-12-08 08:46:06 +08:00
    自己的 vps 以前部署项目都是传统的方式安装环境,现在换上 docker 之后方便了许多
    hakono
        6
    hakono  
       2019-12-08 09:20:53 +08:00 via iPhone   ❤️ 1
    方便不知道多少
    劳资开发 php 终于不用再先把 nginx php-fpm 这堆东西装一遍配置一遍了(谁再说 php 是最方便的我跟谁拼了,当年刚接触这方面,光是 php 环境的配置就让我学了不知道多少天,光一个环境搭建就这么折腾人 php 哪里方便了)

    还有 ruby,维护公司内部的年会投票网站,一打开代码 ruby。。。当时的项目没有用 dockerfile 和 compose,只能本地装,
    六七年前的项目,配置环境就一堆问题,生产环境的 deploy 也是直接在本地靠 bundle 做的,更是一堆问题。最后受不了了,直接把整个项目搞成 docker,世界清净了,生产环境 deploy 也方便了

    对于那种开发时环境构建麻烦复杂的,docker 真的是救星
    wd
        7
    wd  
       2019-12-08 09:28:59 +08:00 via iPhone
    如果自己给自己定位是 普通 那可能也不用学...
    zsdroid
        8
    zsdroid  
       2019-12-08 09:29:18 +08:00
    有了 docker 以后,看电脑不爽就直接重装系统,反正开发环境在 docker 上。
    chi1st
        9
    chi1st  
       2019-12-08 09:33:28 +08:00 via Android
    @zsdroid 不是应该在 vagrant 下开发,用 docker 部署么?
    JerryCha
        10
    JerryCha  
       2019-12-08 10:16:18 +08:00
    docker 是世界上最伟大的发明之一
    Mogugugugu
        11
    Mogugugugu  
       2019-12-08 10:18:00 +08:00 via Android
    JAVA 配合 jib 还是很棒的!
    cz5424
        12
    cz5424  
       2019-12-08 10:19:58 +08:00 via iPhone
    看楼主意思是不打算学的。docker 真的很香
    lhx2008
        13
    lhx2008  
       2019-12-08 10:27:39 +08:00 via Android
    如果不做 devops,部署不用你管,用处不大
    whileFalse
        14
    whileFalse  
       2019-12-08 10:31:42 +08:00 via iPhone
    如果你只负责开发并且已经配好环境,那么没用。
    yuikns
        15
    yuikns  
       2019-12-08 10:32:14 +08:00 via Android
    没有,别学,放心吧
    SorcererXW
        16
    SorcererXW  
       2019-12-08 10:34:33 +08:00
    如果程序要跑测试,每一次都丢到线上的测试环境去太慢了,在本地用 docker 搭建一个运行环境,直接进行测试非常方便。
    laminux29
        17
    laminux29  
       2019-12-08 10:40:55 +08:00
    必然方便得多,但我建议用 VMware,优点是比 Docker 功能多,缺点是比 Docker 性能低。
    rockyou12
        18
    rockyou12  
       2019-12-08 11:03:11 +08:00
    还是看情况吧,一般板砖的 java 开发用处不大,也很难感受到 docker 的好处。我司生产基本都全部上 k8s 了,同事基本还是一个懂 docker 的都没有,苦哦 /(ㄒoㄒ)/
    abcbuzhiming
        19
    abcbuzhiming  
       2019-12-08 11:12:47 +08:00
    @rockyou12 问个问题,贵公司的生产环境有多大规模的机器,最近一直在研究 k8s,感觉服务器不够多的时候 k8s 没有优势啊,还不如直接用 docker
    fengxianqi
        20
    fengxianqi  
       2019-12-08 11:16:27 +08:00 via Android
    我是个前端,最近也在学 docker,准备把自己 vps 上的 typecho,静态站点,node 等都 docker 化,这样以后迁移新 vps 应该会方便很多。
    superrichman
        21
    superrichman  
       2019-12-08 11:35:42 +08:00
    后端 java 开发搞 docker 没什么大用处. docker 只是为了开发完成后部署方便才用, 开发过程加入 docker 只会画蛇添足.
    dreamerlv3ex
        22
    dreamerlv3ex  
       2019-12-08 12:04:49 +08:00
    感觉大家都是在大公司...各种 docker.
    mxtob
        23
    mxtob  
       2019-12-08 12:18:15 +08:00 via iPhone
    一次封装到处运行,对于你自己折腾部署过一次后,后面要迁移各种方便。docker 用起来感觉就是对各种 linux 软件的进一步规范吧。有时候折腾不熟悉软件不需要各种看教程源码安装,几个命令就能体验到新软件
    cedoo22
        24
    cedoo22  
       2019-12-08 12:18:22 +08:00
    大公司 有成规模的运维团队的时候有点用, 中小公司就算了。。。。环境配置 中间件各种不标准,一个服务器 N 个服务~一个中间件 N 个系统用,运维人员怎么配置,全靠心情。 你要怎么 docker ???
    tourist2018
        25
    tourist2018  
       2019-12-08 12:24:25 +08:00
    对找工作有帮助 真的有人在 docker 环境种开发么?
    dcalsky
        26
    dcalsky  
       2019-12-08 12:26:36 +08:00 via Android   ❤️ 1
    这么说把,我日常使用 python3 和 django,你能想象我本地却没装 python3 吗?因为全放 docker 里了,一开始有些别捏,因为要配置 docker 不如本地直接动手方便,但到部署环节,优势就来了。
    HughRyu
        27
    HughRyu  
       2019-12-08 12:26:39 +08:00
    @laminux29 VMware 和 Docker 两个维度吧。Docker 主要是部署环境的统一打包。而 VMware 对部署,你总不能把 VMDK 扔过去吧?至于资源复用和隔离,概念不同一个有 Hyperviser 一个没有。甚至 VMware+Docker 都是可以生产化的。
    MeteorCat
        28
    MeteorCat  
       2019-12-08 12:37:38 +08:00 via Android
    搞 curd 有个屁用,开着 idea 卡半天吃一大堆内存,再说 Java 不是跨平台直接本地运行就行了吗?
    yukiloh
        29
    yukiloh  
       2019-12-08 13:10:30 +08:00 via Android
    我现在找应用第一就是看有没有 docker…
    sagaxu
        30
    sagaxu  
       2019-12-08 13:13:29 +08:00 via Android
    部署不是运维的事情吗?
    DelayNoMore
        31
    DelayNoMore  
       2019-12-08 13:24:59 +08:00 via Android
    docker+k8s 美滋滋
    locoz
        32
    locoz  
       2019-12-08 13:32:42 +08:00 via Android
    @abcbuzhiming #19 我最近也在研究 k8s,公司一直用的 k8s,然后我最近在把家里服务器上原本直接 docker run 的那些服务迁到虚拟机里的 k8s 集群里,好处和优势方面主要在于 k8s 和它的生态使得管理起来更方便了,比如:
    命名空间之类的设定用来隔离服务很舒服;
    所有服务统一一个负载均衡出口,配置域名什么的全都在 k8s 的生态里解决;
    如果我以后要把某个服务迁到真正的集群上,我只需要连上那个集群然后点个复制就行;
    服务间通信不像单用 docker 那样那么麻烦(我知道可以 swarm,但是配套工具很少有像 k8s 那样好用的)

    而 k8s 之所以能干掉其他的容器编排框架,应该也跟生态碾压脱不了关系。
    locoz
        33
    locoz  
       2019-12-08 13:37:20 +08:00 via Android
    @abcbuzhiming #19 实际的生产环境中,真集群的话用 k8s 可以很轻松地实现扩容之类的,如果单用 docker 的话没那么方便,这就是最直观的优势。
    毕竟现在规模不大不代表未来规模不大,万一要扩大规模的话,像比如说在阿里云上用 k8s,就只需要点一下集群扩容,然后它会自动开新机器并把机器加进集群里,然后再对需要扩容的服务改个副本数量,整个流程就结束了。
    rockyou12
        34
    rockyou12  
       2019-12-08 13:54:10 +08:00
    @abcbuzhiming 10 多 20 个,其实上面优势提了,如果你是要生产上面用,那么 docker 原生很多功能是满足不了的。特别是故障转移不搞集群是没法弄的
    qdzzyb
        35
    qdzzyb  
       2019-12-08 14:22:07 +08:00   ❤️ 1
    本地启动个 redis 啊 mysql 啊 贼方便
    ArtIsPatrick
        36
    ArtIsPatrick  
       2019-12-08 14:30:37 +08:00 via iPhone
    如果环境部署很麻烦 docker 可以帮你一劳永逸,别人也可以直接部署,否则就没什么必要,除非公司已经统一使用 docker 了。
    blless
        37
    blless  
       2019-12-08 14:45:04 +08:00 via Android
    可以保证开发测试运行系统环境一致 避免开发 jdk8 生产环境 jdk7 之类的问题
    xuanbg
        38
    xuanbg  
       2019-12-08 16:00:06 +08:00
    搞微服务的特别有用,单体的就只有装 MySQL、Redis 这些有优势,一条命令就装好了。
    wee911
        39
    wee911  
       2019-12-08 16:05:15 +08:00
    不用你怎么部署
    mineqiqi
        40
    mineqiqi  
       2019-12-08 17:27:54 +08:00
    docker 某些环境下非常便捷
    NeinChn
        41
    NeinChn  
       2019-12-08 17:32:36 +08:00
    对 Java 开发来说基本没有什么区别,大部分情况下 Mac/Linux 都能跑,除了少部分依赖 jni/so 的库需要看看有没有做依赖处理。版本上的问题,在大公司肯定不存在,服务器用什么版本,自己本机就用什么版本就可以了。
    对 C/Python 这类语言来说倒是可以大幅度降低依赖管理的难度,提升效率
    Java 本来在这块就做的好,本地开发没什么问题
    C/Python 大部分都要在 Linux 开发机上远程开发
    youxiachai
        42
    youxiachai  
       2019-12-08 17:53:59 +08:00
    只开发过 java...
    没了解过 ruby 和 php 的痛苦,是不了解 docker 的革命性......
    毕竟 java 大部分时候一个 war 包完事...
    hst001
        43
    hst001  
       2019-12-08 17:59:21 +08:00
    初始配置比较麻烦,日常使用多的话,能节省不少时间下来,还是值得的
    scnace
        44
    scnace  
       2019-12-08 18:10:49 +08:00 via Android
    有,以前 deploy 要跟 ops argue 半天 现在 Dockerfile 可以甩他脸上了(
    Yoock
        45
    Yoock  
       2019-12-08 19:41:57 +08:00
    自己本地搭建集群变得简单了, 折腾的成本变低
    cs419
        46
    cs419  
       2019-12-08 21:10:44 +08:00
    如果目光只停留在业务的 crud 上 那的确没 docker 啥事

    但对应用的 CRUD 那 docker 只是基础
    比如某个应用启动多个副本 动态调整节点数 挂了自动恢复
    lewis89
        47
    lewis89  
       2019-12-08 21:18:06 +08:00
    如果你不会 Linux 操作系统跟 Unix 那套工具链以及各种命令的话 Docker 就免了吧,给你用你也用处不大,真心的。
    wangyzj
        48
    wangyzj  
       2019-12-08 21:20:09 +08:00
    单元测试
    jaylee4869
        49
    jaylee4869  
       2019-12-08 21:47:44 +08:00
    我用了 docker 之后恨不得 redis、mq、mysql 这些都换 docker 部署
    qwefdrt
        50
    qwefdrt  
       2019-12-09 00:06:41 +08:00
    对于我这种测试时候喜欢乱搞把环境弄的一团糟的人来说,Docker 比较适合我。不行就销毁重建
    wangkun025
        51
    wangkun025  
       2019-12-09 00:08:03 +08:00
    我是后端,对我没用。
    sl0000
        52
    sl0000  
       2019-12-09 00:23:17 +08:00
    用 kvm 的前端
    falcon05
        53
    falcon05  
       2019-12-09 00:32:38 +08:00 via iPhone
    有计划把开发环境跟正式环境 docker 化的想法,不过 macOS 上的实现跟 Linux 上的 docker 实现很不一样,有些奇怪的坑,而且耗电,最近给 macbook Pro 又买了块紫米充电宝,在外面续航能撑一天了,于是又有了尝试的勇气。
    zy445566
        54
    zy445566  
       2019-12-09 07:58:07 +08:00 via Android
    可以利用 docker 的服务端和客户端分离,实现在开发机更方便部署而不需要登录开发机。
    https://github.com/zy445566/myBlog/blob/master/20190808docker/20190808wsl-remote-docker/README.md

    我觉得 docker 不是 k8s,如果不需要要用上编排成本远低于 k8s,而 docker 在 Linux 平台几乎都是一个命令的事情,干嘛不使用这么简单的工具呢。
    xiaomingVTEX
        55
    xiaomingVTEX  
       2019-12-09 08:31:45 +08:00
    +1, 确实方便了不少
    abcbuzhiming
        56
    abcbuzhiming  
       2019-12-09 10:06:21 +08:00
    @locoz 你的 k8s 集群大概是多大的规模,几台虚拟机?
    locoz
        57
    locoz  
       2019-12-09 10:08:36 +08:00
    @abcbuzhiming #56 四台虚拟机 一台做 master 节点
    amwyyyy
        58
    amwyyyy  
       2019-12-09 10:22:44 +08:00
    对日常工作没用的技术多了去了,但面试爱问,会 docker 是加分项。
    ddzzhen
        59
    ddzzhen  
       2019-12-09 12:13:20 +08:00 via Android
    工具就是为了方便的,如果有重复劳动,你会自己这类工具,如果没有重复劳动那就是不需要
    chenshun00
        60
    chenshun00  
       2019-12-09 12:44:48 +08:00
    对于普通开发其实没有什么区别,但是在运维上会极大的的减少工作量.
    ZSeptember
        61
    ZSeptember  
       2019-12-09 18:50:55 +08:00
    日常工作没啥用的吧,了解下还是好点。
    chippai
        62
    chippai  
       2019-12-09 20:01:03 +08:00
    日常工作没用到,环境啥的都是基础架构的支持。
    日常学习倒是用到很多,本地搭各种环境会用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   975 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:54 · PVG 03:54 · LAX 11:54 · JFK 14:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.