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

基于容器运行程序使用不同的基础镜像有什么本质上的区别吗

  •  
  •   dzdh · 2022-12-19 14:09:42 +08:00 · 1242 次点击
    这是一个创建于 687 天前的主题,其中的信息可能已经有所发展或是发生改变。

    已知内核是和宿主机共用。那那些依托于高内核或特定内核版本才支持的 OS 层的特性就不用考虑也不用想了这没得说。

    疑问是 比如像 java 程序,依赖的 jdk 版本比如都是 11, 那 ubuntu 和 11jdk 和 rhel 的 11jdk 一样么?比如在安全和稳定性上。记得有过暴什么漏洞 rhel 没发布补丁,ubuntu 发布了,是因为 rhel 在发行 11jdk 之初就做过修改么?规避了?一句话就是 rhel 的部分软件包是有做过修改后才发布的 rpm ?

    再比如 libc 就不是和内核公用的了吧?有没有啥说法是 rhel 的 ubi 镜像使用 rhel 的 repo 然后某些软件包可能更安全稳定的?

    比如要搞 tensorflow ,那 docker 里就跑 ubuntu 。要搞 java 的那就用 rhel-ubi 。要搞 php 那就用 debian ?

    4 条回复    2022-12-20 09:47:05 +08:00
    julyclyde
        1
    julyclyde  
       2022-12-19 17:55:15 +08:00
    你问的这些其实和泛泛的镜像这个词没什么关系啊
    和里面的内容有关啊
    dzdh
        2
    dzdh  
    OP
       2022-12-19 20:16:56 +08:00
    @julyclyde

    因为运行不同的程序一定要基于某一个 base 镜像,直接基于 scratch 或者 busybox 自己编译 jdk 显然不现实。

    那现成可选的无非就是几大发行版,譬如 rhel/ubuntu/debian/opensuse 等。用到这些发行版作为 base image 的同时,势必要依赖其的包管理器,也势必依赖自带的包内容和质量。

    再加上软件依赖如 tensorflow 官方软件包支持 Ubuntu 、Windows 和 macOS 。那就必然只能选择 ubuntu 作为 base image 。

    所以问题是,针对不同的程序(按语言分 java/go/rust/php/python 等等),是否存在某个发行版作为 BaseImage 更契合的说法呢?

    再比如是否 rhel/ubuntu/debian/opensuse 在某些方向上会更加专注和擅长?比如 rhel 可能更专注 java 这种所谓企业级语言的基础环境包的更新和安全维护所以 java 系尽量选 rhel ,ubuntu 在 python 方面更频繁的更新和安全维护所以 python 程序就选 ubuntu (只是假设)?

    存在如上这种说法吗?
    wangwcq
        3
    wangwcq  
       2022-12-19 21:30:53 +08:00   ❤️ 1
    不同的 base image 最明显的体验就是系统大小和包管理器吧。比如 nodejs ,如果就一个 node 的服务就选 alpine 的 image ,因为小,编译快传输快。如果复杂一点,一个服务节点上还需要安装 nginx ,tensorflow ,python ,imagemagik ,那就要上 ubuntu 的 image 了。然后有的时候还要调整时区,或者调用系统的 shell ,每个系统的命令写法都不太一样,业务系统的逻辑就和操作系统强关联了。各大语言在 docker hub 的官方 image 都尽可能给了不同的操作系统也是说明都能支持,同时考虑到了各自的历史习惯和包管理器的依赖吧
    julyclyde
        4
    julyclyde  
       2022-12-20 09:47:05 +08:00
    @dzdh 并不一定要基于一个
    想想世界上第一个镜像是基于谁呢

    一般容器的生命周期就几天,所以你其实不必关心镜像 base 里那个操作系统的发展,只需要关注“这个版本的镜像”能否满足当下的需求即可
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1121 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:40 · PVG 02:40 · LAX 10:40 · JFK 13:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.