如果我有 N 个应用要部署,不用 docker ,我只需要一个 nginx ,mysql ,java 环境 or php 环境,又或者是直接的 go 二进制;一旦我用 docker 的话,部署同样 N 个应用,是不是就需要 N 份 nginx ,mysql 等,这样岂不是要占用非常多的内存和空间。
1
ql562482472 2023-05-04 13:53:03 +08:00
不差这几百 M
|
2
wdwwtzy 2023-05-04 13:54:07 +08:00
你在说什么?
用 docker 也可以只要一份 nginx ,mysql 啊 |
3
seki 2023-05-04 13:55:46 +08:00
不用 docker 的时候每个应用都用同一个 mysql
上了 docker ,也可以每个应用都在用同一个 mysql 容器实例,不至于每个应用都开个 mysql nginx 就不太所谓了,占内容不多 |
4
klo424 2023-05-04 13:57:07 +08:00
docker 在不同容器间,网络可以设置互通的。所以你只需要部署一个 nginx 容器、一个 mysql 容器,一个 java 容器即可。
|
5
sunny352787 2023-05-04 14:31:35 +08:00
从你的问题里,我觉得你可能错误的理解 docker 容器的用法了,一般我们用容器的时候不会把所有的东西都塞进一个容器里,还是会拆分开,如果你想一起开的话就用 docker-compose 一类的集群处理吧
|
7
julyclyde 2023-05-04 21:55:32 +08:00
你说的这些,大概只有 java/php 有可能有多份的需求
而他们本来也不是在同一台机器上的,共用不了什么 |
8
zu1y 2023-05-05 00:36:05 +08:00
用错了吧,正常做法是一个镜像里只有一个进程
|
9
Aresxue 2023-05-05 10:04:17 +08:00
应用和数据库中间件是独立的,部署的时候也是分开的,你这个就是打包在一起了,拆开就好了
|
10
f1ynnv2 2023-06-08 13:15:38 +08:00 2
我感觉楼主的疑问很合理,但是大家的关注点却在质疑他的 docker 用法
之前使用 Nginx proxy manager ,它其实自己就带了 nginx ,专门给自己使用。 但是我也有很多应用部署需要用到 nginx ,最后我只能再自己部署一个 nginx 。因为你想用来部署自己的软件的话,就得修改它的配置文件,而这有可能会导致它自己运行有问题,而且镜像更新后也能不能兼容都是问题 很多应用并不一定是自己开发的,很可能是开源的,通过 docker compose 部署一套组件。如果你用的这类开源方案也多,就越会和楼主有一样的疑问。 关于楼主的疑问,我的理解是:肯定会多占资源。 |