xiaowowo
V2EX  ›  Docker

数据库, Nginx, Redis 这种基础组件到底应不应该运行在容器中?

  •  
  •   xiaowowo · Jan 23, 2024 · 4903 views
    This topic created in 1015 days ago, the information mentioned may be changed or developed.

    运行在容器中有什么好处

    1 ,安装简单
    2 ,资源隔离
    3 ,迁移方便

    运行在容器中有什么问题?

    性能问题?互相访问不方便?

    目前我最担心的就是性能问题,但是 docker 所有的功能实现似乎都是基于 Linux 内核提供的功能( Namespaces ,Cgroups ,OverlayFS )实现的,并没有使用任何的中间层代理或者虚拟化技术,按道理来说这个性能损耗似乎是微乎其微的?

    还有其他值得考虑的问题吗?

    19 replies  •  2024-01-23 20:45:52 +08:00
    rrfeng
    rrfeng
    Jan 23, 2024 via Android
    1
    数据库争议比较大,后两个无脑进。
    phrack
    phrack
    Jan 23, 2024 via iPhone
    2
    性能几乎没有损失
    setimouse
    setimouse
    Jan 23, 2024
    3
    跟性能没关系。容器不是虚拟机,只是资源上做分组隔离,不影响性能。
    totoro625
    totoro625
    Jan 23, 2024❤️1
    4
    Nginx 打算放出来了,目前还是 docker 运行

    其他的 docker 都是内部使用,无需对外访问
    而 Nginx 在 docker 运行遇到了几个问题:
    1 、docker stop nginx 修改 docker 参数后,80/443 端口被裸机安装的 Tailscale 抢端口,裸机安装 ginx 兼容性更好一点
    2 、配置文件只有一个/一个文件夹,迁移比较简单
    3 、不修改 docker 配置的情况下,可以很好的支持 ipv6 和 iptables
    univ
    univ
    Jan 23, 2024
    5
    数据库还是放在外面,数据稳妥
    Greendays
    Greendays
    Jan 23, 2024
    6
    都可以用容器的,基本不会影响到性能。
    cbdyzj
    cbdyzj
    Jan 23, 2024
    7
    都可以用容器的,数据 volume 啥的都有现成的结局方案
    Quarter
    Quarter
    Jan 23, 2024 via Android
    8
    目前来看 除了数据库放 docker 应该都没事,数据库的话有说会影响 IO 的,也有说容器崩溃后导致数据受损不易恢复的,但还是有不少项目直接是 docker 跑的,感觉问题不是特别大
    demoshengxw
    demoshengxw
    Jan 23, 2024 via iPhone
    9
    貌似有状态应用容器化一直是个难题,我们生产环境上千个 pod 都是连阿里的 rds 。
    popil1987
    popil1987
    Jan 23, 2024
    10
    可以,性能有一定损失,但运维简便
    hefish
    hefish
    Jan 23, 2024
    11
    数据库要真是跑容器里引起问题了,那才放容器外。 问题包括 性能啊,可靠程度啊之类的。
    simple2025
    simple2025
    Jan 23, 2024
    12
    nginx 没有必要放 docker 吧,apt 安装从来不坏,而且也没有追求新版本的特性,不像数据库
    displayabc
    displayabc
    Jan 23, 2024
    13
    mysql 也放在 docker 了,4 年了,没啥问题,升级也方便,每天几千万个 sql 执行
    echo1937
    echo1937
    Jan 23, 2024
    14
    网络有模式的问题,
    @totoro625 你这个机器是 derp 服务器吗,按道理 tailscale 客户端是不需求 80 和 443 端口的
    totoro625
    totoro625
    Jan 23, 2024
    15
    @echo1937 #14 不是 derp

    可能是因为其他机器里面写死了直接访问了 100.xxx.xxx.xxx:443

    # netstat -tunlp | grep 443
    tcp 0 0 100.100.***.***:443 0.0.0.0:* LISTEN 692/tailscaled
    tcp6 0 0 fd7a:***:***:***:443 :::* LISTEN 692/tailscaled
    wu00
    wu00
    Jan 23, 2024
    16
    怎么方便怎么来;
    测试环境肯定是全容器化;
    生产环境肯定是能云则云,别想着从这方面给老板省钱,很贱的;
    又上不起云又没专业运维,天王老子来了都是容器一把梭。
    shakaraka
    shakaraka
    Jan 23, 2024
    17
    反过来想。

    是使用哪些软件遇到了什么问题从而需要真机部署?
    perfectlife
    perfectlife
    Jan 23, 2024
    18
    老实讲 我感觉这三个都没必要放容器里,nginx 有的镜像有时候会有点小问题,没有 yum/apt 安装的兼容性好,mysql/redis 这种部署后基本不动了,容器部署可以但是必要性不强
    MXMIS
    MXMIS
    Jan 23, 2024
    19
    Nginx 进 Docker 没啥问题,mysql 和 redis 要是单机用 Docker 也可以,集群还是算了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5041 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 08:54 · PVG 16:54 · LAX 00:54 · JFK 03:54
    ♥ Do have faith in what you're doing.