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

如何将本地现在比较复杂的环境直接做成 docker 的镜像

  •  1
     
  •   lewin5 · 189 天前 · 2853 次点击
    这是一个创建于 189 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚研究 docker 没多久,网上看到的都是说通过 build 或 commit 来制作镜像,可是我在虚拟机里配置很多 jenkins 其他集成的插件和其他的东西,想直接将本地环境直接做成镜像怎么弄。。。我不想又重新基于一个 centos 或者 ubuntu 来重新在 dockfile 里面一步一步重头开始来 build,而且感觉这样会有很多问题,因为直接集成 jenkins 很多的东西时出现很多不兼容的,甚至替换过很多 jar 包之类的。 help !!!

    7 回复  |  直到 2019-06-17 11:45:18 +08:00
        1
    luckyrayyy   189 天前
    没听说过这种操作...
        2
    XSG   189 天前 via iPhone
    用 dockerfile 一步步来吧
        3
    troywinter   189 天前
    #2 正解,把 docker file 里的步骤分开,一步一步来,可以根据用途在进一步分解成 base image 和 sub image,比如 base image 安装一些公用的工具和环境,sub image 安装项目或语言特定的环境,然后各个服务在做自己特定的 image,类似对象继承的方式,但注意要 scale out 而不是 scale up
        4
    lewin5   181 天前
    @XSG 嗯,有考虑过选一个 base image 然后每个步骤,所需环境一步步写在 dockerfile 里面,就是觉得太麻烦了,在想有没有啥类似快照的方式直接将本地环境转换成 dockerfile 不用自己一步步来写,现在应该还没有,以后应该会有的把。
        5
    lewin5   181 天前
    @troywinter 嗯,thx,现在暂时把 jenkins 那块剥离出来了,只针对运行环境做成镜像,FROM ubuntu 然后在 dockerfile 里面 install 一些需要的依赖和工具就行了,现在就是感觉做出来的 image Size 有点大,装了些 jdk、camke、gcc 之类的 7~8 个依赖和工具后,size 差不多就有 800+M 了。。。有没有什么办法能减小 image 的大小?
        6
    troywinter   181 天前
    @lewin5 image size 不等同于容器运行时的内存大小,可以自己在 docker 里验证一下,包含 java 的运行时本来就会相对占用比较高,但你可以把 jdk 和 gcc 之类的分开,关键看你的服务需要哪些环境就安装哪些,按业务线来分,如果只是 jenkins 其实影响不大,但你可以分为 java 工具链和 C/C++工具链,把它们分离开来。
        7
    lewin5   178 天前
    @troywinter 看了下好像在 docker 里面 install 这些的时候,依赖什么的本来就这么大,是想针对开发或者测试环境搭建一个 docker image,jenkins 其实只是通过 hook 触发来打包分发这些 image,可能还是得这么大,嗯,谢谢了。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   990 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 32ms · UTC 22:24 · PVG 06:24 · LAX 14:24 · JFK 17:24
    ♥ Do have faith in what you're doing.