关于 docker 的一些问题? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
junwind
V2EX    Docker

关于 docker 的一些问题?

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

    对于 docker ,因为我实际工作中用的少,所以有一些小疑问,谢邀各位大佬们,能帮我解惑,感谢大佬们。

    1. 假设我现在有一个项目,依赖 redis ,mysql ,nginx ,php ,那么我们是把这些都放在一个容器中,还是每个单独作为一个容器。
    2. nginx 是 web 服务,可以一对多。也应该做为容器吗?
    3. 数据库是该用云服务,还是自己搭呢? 如果自己搭,是和项目放在一台服务器上,还是应该单独放一台服务器上呢?
    4. 假设我一个项目同时要部署多套,是一个服务器就包含一整套服务, 还是应该把数据库分离开呢?
    12 条回复    2025-02-16 14:45:05 +08:00
    Aicnal
        1
    Aicnal  
       236 天前
    第一个,我会考虑写成 docker compose ,docker 推荐每个容器只运行一个进程,这样可以保持容器的轻量化和单一职责,如果所有服务都放在一个容器里,可能会造成管理上的困难,比如日志混乱、升级麻烦,而且违背了微服务的原则,所以应该建议每个服务单独作为容器

    第二个,nginx 可以容器化,但我感觉一般容器化的很少,除非你想用 kubernates 的反向代理或者负载均衡等其他服务

    第三个,云服务/自建,有钱或者追求高可用则买云服务,没钱个人小打小闹自建,我个人项目都是跑在一个服务器上
    pckillers
        2
    pckillers  
       236 天前
    1. 分开
    pckillers
        3
    pckillers  
       236 天前   1
    1. 分开
    2. 是的,甚至复杂业务场景或者基于安全性要求你会需要多个 nginx 容器
    3. 建议云服务,除非你的数据库数据没有任何备份与安全性的要求
    4. 用云服务自然就分离开了。不用云服务自然是放一起节省成本,单独开虚拟机跑数据库是最没有意义的。
    wolffcat
        4
    wolffcat  
       236 天前 via Android
    用的少就只能方便怎么来,分开是通用做法,Redis ,flask ,MongoDB ,Nginx ,Nginxwaf ,我的实际使用场景。
    BeautifulSoap
        5
    BeautifulSoap  
       236 天前 via Android
    除了 nginx 和 php fpm 适合放到一个容器内之外其他所有容器都应该单独一个容器
    sagaxu
        6
    sagaxu  
       236 天前
    1. 如果放同一个容器,其实更适合的是虚拟机,而不是容器。
    2. 可做可不做,nginx 版本更新或者扩容频次都很低。
    3. 有 DBA 才考虑自己搭,否则监控和灾备大概率不如云服务专业。
    4. 设计上独立,部署时根据需求和预算评估是否分离。
    iintothewind
        7
    iintothewind  
       236 天前
    nginx 容器化部署意义不大.

    因为作为流量入口, network 用 bridge 的话性能会严重拖慢, 用 host 的话已经失去了容器隔离的优势了.
    所以还是安装在主机端是最合理的.

    大部分网络上的内容只教你 nginx 怎么容器化部署, 但他们都没告诉过你 nginx 在生产环境部署的时候有哪些坑, 以及到底有没有必要容器化.
    JensenQian
        8
    JensenQian  
       236 天前 via Android
    lnmp 用现成的完事了啊
    fox0001
        9
    fox0001  
       236 天前 via Android
    1. 分开。一楼提到的 docker compose 就是解决这种问题。

    2. nginx 在这个场景,可以独立出来。因为涉及 php ,我们生产环境没用过。有的案例会用 docker compose ,把 nginx 集成到这个 php 系统,即一套服务部署一个 nginx 。外面再部署一个作为入口的 nginx 。

    3. 看预算和系统压力。把数据库与业务系统分离,肯定
    fox0001
        10
    fox0001  
       236 天前 via Android
    @fox0001 #9 不小心按了回复,继续补充

    3. 看预算和系统压力。把数据库与业务系统分离,一直以来都是建议这么做。

    4. 看预算和系统设计。部署多套,建议是数据库独立出来,数据维护简单点。但是如果多套系统的数据没有关联,可以一套一个数据库。但是维护基础数据就得做同步。
    wnpllrzodiac
        11
    wnpllrzodiac  
       236 天前 via Android
    生产环境直接有提供 k8s 集群服务的。扩展备份都设计好了,花钱就行
    julyclyde
        12
    julyclyde  
       236 天前
    首先你这些根本就不必须放到容器中
    其次你还不太会
    结论:自己给自己找麻烦
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2980 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 13:32 PVG 21:32 LAX 06:32 JFK 09:32
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86