V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
James369
V2EX  ›  程序员

Docker 用来做开发环境,能否支撑高版本系统

  •  
  •   James369 · Sep 2, 2022 · 2705 views
    This topic created in 1333 days ago, the information mentioned may be changed or developed.

    比如现在的物理机是 Ubuntu18 ,但是我安装的软件组件(比如 Nginx ,假设它需要安装在 ubuntu20 上),那么能否用 docker 来做。

    也就是说在低版本系统平台上,用 docker 来承载 需要高版本系统要求 的软件组件?

    同时还想问一下,就是 docker 是完美的物理机隔离环境吗,有没有什么限制或者额外的负担? (比如,我现在想在物理机上隔离出 5 套环境:1.git server ,2.compile server, 3. file server, 4. AI trainning, 5, vscode remote dev server 。当然我的物理机是足够强劲的)

    感谢!

    7 replies    2022-09-02 14:34:12 +08:00
    mengzhuo
        1
    mengzhuo  
       Sep 2, 2022
    可以承担高版本

    限制就是需要自己搞好容器文件系统管理
    额外负担就是网络、文件系统有性能损耗
    thinkershare
        2
    thinkershare  
       Sep 2, 2022   ❤️ 2
    docker 不是完美的物理机隔离环境. 它和你的宿主机公用同一个内核, 本质上容器就是个进程级别的隔离. 因此你 Ubuntu 20.04 和 Ubuntu 18 的 Linux 内核是公用的, 也就是使用 Ubuntu18 物理机当前的 Linux 内核(是内核, 不是操作系统).
    James369
        3
    James369  
    OP
       Sep 2, 2022
    @thinkershare 这么看也只有虚拟机才能真正隔离了,就是太重
    kaneg
        4
    kaneg  
       Sep 2, 2022 via iPhone
    如果你的需求都是基于 Linux 的,docker 是最高效快捷的方式,环境部署,重装等基本可以秒建。对于主机和子机版本不同的问题绝大多数是没关系的,除非某软件依赖高版本内核的功能。
    Kinnice
        5
    Kinnice  
       Sep 2, 2022
    pve 吧
    cheng6563
        6
    cheng6563  
       Sep 2, 2022
    你软件钥匙没用啥内核功能那就没啥问题
    libook
        7
    libook  
       Sep 2, 2022
    容器里的程序还是使用你宿主机的内核来跑的,只不过用 Cgroup 等机制对资源进行了隔离,绝大多情况下只要版本不差太多,都是可以跑的,可能无法正常跑的情况就是当容器内的程序依赖你宿主机内核没有的 API 的情况。

    如果你相信 Linux 的 Cgroup 等隔离方案并正确使用的话,容器就是相比虚拟机开销更小、管理起来更便捷的隔离方案。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3202 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 13:46 · PVG 21:46 · LAX 06:46 · JFK 09:46
    ♥ Do have faith in what you're doing.