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

我一直有个疑问,用 docker 部署多个容器,会不会占用更多的内存

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

    如果我有 N 个应用要部署,不用 docker ,我只需要一个 nginx ,mysql ,java 环境 or php 环境,又或者是直接的 go 二进制;一旦我用 docker 的话,部署同样 N 个应用,是不是就需要 N 份 nginx ,mysql 等,这样岂不是要占用非常多的内存和空间。

    10 条回复    2023-06-08 13:15:38 +08:00
    ql562482472
        1
    ql562482472  
       351 天前
    不差这几百 M
    wdwwtzy
        2
    wdwwtzy  
       351 天前
    你在说什么?
    用 docker 也可以只要一份 nginx ,mysql 啊
    seki
        3
    seki  
       351 天前
    不用 docker 的时候每个应用都用同一个 mysql
    上了 docker ,也可以每个应用都在用同一个 mysql 容器实例,不至于每个应用都开个 mysql

    nginx 就不太所谓了,占内容不多
    klo424
        4
    klo424  
       351 天前
    docker 在不同容器间,网络可以设置互通的。所以你只需要部署一个 nginx 容器、一个 mysql 容器,一个 java 容器即可。
    sunny352787
        5
    sunny352787  
       351 天前
    从你的问题里,我觉得你可能错误的理解 docker 容器的用法了,一般我们用容器的时候不会把所有的东西都塞进一个容器里,还是会拆分开,如果你想一起开的话就用 docker-compose 一类的集群处理吧
    uniy
        6
    uniy  
    OP
       351 天前
    @wdwwtzy 如果从 2 个镜像里面的 mysql 版本不一样,拉下来是不是就安装两个 mysql 了
    julyclyde
        7
    julyclyde  
       351 天前
    你说的这些,大概只有 java/php 有可能有多份的需求
    而他们本来也不是在同一台机器上的,共用不了什么
    zu1y
        8
    zu1y  
       351 天前
    用错了吧,正常做法是一个镜像里只有一个进程
    Aresxue
        9
    Aresxue  
       351 天前
    应用和数据库中间件是独立的,部署的时候也是分开的,你这个就是打包在一起了,拆开就好了
    f1ynnv2
        10
    f1ynnv2  
       317 天前   ❤️ 2
    我感觉楼主的疑问很合理,但是大家的关注点却在质疑他的 docker 用法

    之前使用 Nginx proxy manager ,它其实自己就带了 nginx ,专门给自己使用。

    但是我也有很多应用部署需要用到 nginx ,最后我只能再自己部署一个 nginx 。因为你想用来部署自己的软件的话,就得修改它的配置文件,而这有可能会导致它自己运行有问题,而且镜像更新后也能不能兼容都是问题

    很多应用并不一定是自己开发的,很可能是开源的,通过 docker compose 部署一套组件。如果你用的这类开源方案也多,就越会和楼主有一样的疑问。

    关于楼主的疑问,我的理解是:肯定会多占资源。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2759 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:41 · PVG 13:41 · LAX 22:41 · JFK 01:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.