• 请不要在回答技术问题时复制粘贴 AI 生成的内容
michael2016
V2EX  ›  程序员

面试题:为什么 MySQL 不要使用 Docker 部署。。。。

  •  
  •   michael2016 · Sep 18, 2025 · 23515 views
    This topic created in 420 days ago, the information mentioned may be changed or developed.

    如果你去找工作,遇到我问你以下几个问题如何回答:

    1. 在大厂 MySQL 是不能用 Docker 的,为什么?
    2. 今天业务被 DDoS 了,你如何在 10 分钟内解决问题?
    3. 如果被爬虫爬了,你应该如何解决?
    4. RAG 和 Agent RAG 有什么区别?
    Supplement 1  ·  Sep 18, 2025
    问题一再换个表达方式:在生产环境中不推荐使用 docker 运行 MySQL ,简单简述一下你的经验和最佳实践。
    161 replies  •  2025-09-22 10:59:46 +08:00
    1  2  
    ❮ ❯
    deplives
    deplives
    Sep 18, 2025
    101
    @Sendya #100 你帮我算啥啊,op 确实张嘴 5w qps 还要一个人来负责搞定这些问题啊
    Sendya
    Sendya
    Sep 18, 2025 via Android
    102
    @deplives 哈哈就是帮你把 op 的 5w 具象化一下,给其他人参考
    deplives
    deplives
    Sep 18, 2025
    103
    @Sendya #102 所以我不就说,张口闭口 5w qps ,他怕是都不知道意味着什么
    UN2758
    UN2758
    Sep 18, 2025
    104
    这个不是月经贴吗,RAG 和 agent 也是和 ai 应用岗位强相关了,这个问题类似我问你 word2vec embedding matrix 和 llm 里的 embedding matrix 区别在哪?你觉得有啥普通面试场景上的意义吗
    qianyidui
    qianyidui
    Sep 18, 2025
    105
    如果你上面的问题都回答上了 面试官也很满意 邀请你入职
    面试官问你还有什么想问我的吗
    你问面试官你们公司服务有监控没
    面试官说他们从来不装监控
    你还去这家公司吗?
    wuhanchu
    wuhanchu
    Sep 18, 2025 via iPhone
    106
    可以。但是会增加风险
    mightybruce
    mightybruce
    Sep 18, 2025
    107
    docker 不等同于 k8s, 如果是能运用 k8s operator 并解决可能出现的问题,那么没问题。

    单独用 docker 的确很难做到 mysql 高可用 高可靠的
    forblackking
    forblackking
    Sep 18, 2025❤️5
    108
    @deplives #96 看到 op 在上面批判大伙对待技术的态度,好奇翻了下 op 的帖子,提到过是在做运营咨询的,释然了...
    jhdxr
    jhdxr
    Sep 18, 2025
    109
    > 在大厂 MySQL 是不能用 Docker 的,为什么?
    今年是 2025 年吧?哪个大厂?

    容器化不是银弹,问 mysql (或者大部分传统的 stateful 服务)跑在容器里有啥缺点我觉得更合适一些
    justdoit123
    justdoit123
    Sep 18, 2025
    110
    容器一定是有额外开销的。对于这种有状态的服务。用普通的容器化方案能更快、更好的实现高可用与高稳定性吗?我感觉弊大于利。

    抛开服务负载谈这些都是无效讨论。我感觉面试官没把问题问好。

    另外,就算是大厂,也有小负载、低价值的服务。那么也就没必要什么服务都上岗上线,这时候直接使用 docker/k8s 搭建一个 mysql ,这才是务实的做法。
    9hills
    9hills
    Sep 18, 2025❤️1
    111
    @michael2016 某度、某里都实现了核心业务(包括数据库)百分之百容器化,做容器圈的都知道。

    请问他们的 QPS 是不是超过了 5 万?
    Fallever
    Fallever
    Sep 18, 2025
    112
    刚好在 cnblogs 首页看到这个
    https://www.cnblogs.com/12lisu/p/19093514
    RedisMasterNode
    RedisMasterNode
    Sep 18, 2025
    113
    @laminux29 哈哈翻下来至少到 8 楼只有你是认真回答问题的,点赞!
    Feiex
    Feiex
    Sep 18, 2025❤️3
    114
    @michael2016 #40 这个回答太傲慢油腻了。
    我在京东就职时候,整个业务线都用的是容器化数据库( jed ),es 、hbase 也都是容器化部署。
    当前就职公司也是在逐步下线存量物理机。

    那你所谓的“大厂 MySQL 是不能用 Docker 的”是站不住脚的:
    为什么物理机就稳定安全了,容器化就不稳定安全了?
    物理机架构运维成本相比一键弹性安装的自助化容器岂不是更复杂,成本更高,为什么说是“降低了运维成本”?
    “sla 没有保证”哪家云服务敢不保证容器实例的 SLA ,容器的宕机保护、缩容保护、延迟删除,物理机能做到哪个?
    为什么需要区分设置 prod/stage/test ?为什么这些环境的实例配置做不到软硬件规格统一?很容易配置出错啊

    通篇看来,lz 工作中使用的基础设施只是接入了多家公有云,也仅仅有面向公有云的发布经验,这些独立的云部门不仅超售严重,而且出于成本考量几乎不会做资源隔离。而当前超大规格宿主机完全可以做到各个容器独享各自主板资源,就这方面,我对 lz 的评价是:“年轻有时间还是要多深度学习。”
    huage
    huage
    Sep 18, 2025
    115
    我在宇宙第一大保险公司的科技公司面试过上百人,说真的:面试问题很随机或者说随意,很多问题不是要一个标准答案,而是看你如何回答
    es1muss2sein
    es1muss2sein
    Sep 18, 2025
    116
    看到标题,就想那个垃圾面试官问的,k8s 中跑的都好几年了。
    BadAngel
    BadAngel
    Sep 18, 2025❤️1
    117
    @michael2016
    1 、既然稳定性和数据安全说第一位,就不要选择本地盘,一旦坏了数据就没了,本地盘那一点性能优势和价格优势并不存在。
    2 、为啥 DDos 在云厂这里一个产品就能闭环,你考虑的攻击应对只需要买产品就行了,你真的要考虑自行应对,只能说运维工程师的价格买不来安全工程师的服务,可以省钱,但代价是什么。
    3 、反爬虫也早就是云厂的标准产品能力了,只能说你还是小厂或者传统运维的思维方式了,当领导没有大局观可不行。
    4 、我不懂就不献丑了。

    为啥大家反对的居多,还是爹味太重,一看就积重难返,大家也不用跟这位领导掰扯了,没意义。
    Ketteiron
    Ketteiron
    Sep 18, 2025
    118
    @michael2016 #33
    >把你的客户数据、商品信息都爬走了
    这咋了,防又防不住。能做的工作也就:
    前端混淆+接口加解密,难度 3 ,拦下 90%
    风控系统,难度 5 ,拦下 99%
    指纹验证 + 特征判断,难度 7 ,拦下 99.9%
    人机验证,难度 9 ,拦下 99.99%
    但是不管怎么做都不是 100%,京东淘宝美团这些应用再怎么加固能拦下逆向扣 so 解密吗,接口数据不照样被各种倒手。
    以数据为核心的业务,创立之初就要设想数据被全部爬走的最坏打算,如果无法承受,那么就不该立项。
    crackidz
    crackidz
    Sep 18, 2025
    119
    最后一个问题一定是你记错了或者打错了,应该问题是 RAG 和 Agentic RAG 的区别。
    FarAhead
    FarAhead
    Sep 18, 2025
    120
    @maichael OP 明显不是你说的合格的面试官
    pollux
    pollux
    Sep 18, 2025
    121
    如果是新型的分布式数据库,倒是可以容器化的,只好做好底层存储与协议兼容,路由层隔离,如果是传统数据库,容器化并没有提升性能,还引入了不必要的运维排错风险,尤其是在大厂的 SLA 严格考核下,专机专用也是优良传统。
    wheat0r
    wheat0r
    Sep 18, 2025
    122
    @shenlanAZ #42 我真见过最后一种,找我要一个虚拟机,分配 64GB 内存,说是拿来跑数据库。
    我说这个库就跑一个会员卡系统,并发还不到 10 个,怎么测出来的数据库内存需求。
    他说他们的测试服务器 64GB 内存 SQL Server 长期运行会占满,肯定不能更少了。
    我问有没有使用限制实例的内存占用。
    他问怎么限制…
    ivvei
    ivvei
    Sep 18, 2025
    123
    为什么?因为菜
    WayneCmd
    WayneCmd
    Sep 18, 2025
    124
    @wheat0r 我之前在某国央企工作过,也是遇到过类似的情况,有两种情况

    1. 他们那种组织架构就不允许弹性伸缩,所以一次性会拿很大的配额保证后面一定是够用的,或者挪作他用。
    2. 因为技术问题写的程序有内存泄露的问题,不敢去动代码或者别的什么原因,最后的解决办法就是定时重启...
    siteshen
    siteshen
    Sep 19, 2025
    125
    1. 不知道啊,我一直都用 PostgreSQL ,MySQL 这东西也能火真是没天理。我的建议是不仅是不要用 Docker 部署,更不要部署。
    AmericanExpress
    AmericanExpress
    Sep 19, 2025
    126
    经典命题作文面试
    SeaSaltPepper
    SeaSaltPepper
    Sep 19, 2025
    127
    @Kumo31 点了,看标题以为是讨论贴,进来一看 OP 一股说教的语气,整的好像我是来面试的一样...... 而且 OP 反复强度自己维护大规模集群更有发言权,然而还是不承认这种问题毫无含金量反复在评论区给自己找补
    mengdodo
    mengdodo
    Sep 19, 2025❤️1
    128
    因为沙雕人 docker run mysql 时没有挂载文件,data 文件全在容器内。删了容器后发现数据库也没了,所以它们在恼羞成怒后也不许别人使用。
    TomatoCLI
    TomatoCLI
    Sep 19, 2025
    129
    为什么大厂不用 docker 部署 MySQL ?答:docker 协议问题,不过我们可以用 k8s, containerd, podman 来代理
    user1284
    user1284
    Sep 19, 2025
    130
    @forblackking 这下一切的疑问都有答案了
    mayday526
    mayday526
    Sep 19, 2025
    131
    @junkk 是 io 问题,wsl 也有这个问题,运行的时候会把 php 挂载目录的文件读取到容器/虚拟机环境,是跨文件系统的,贼慢。你直接把 php 文件复制到容器里就会快多了,但是开发环境这么搞太麻烦了
    Vesc
    Vesc
    Sep 19, 2025
    132
    如果被 DDoS 了又没有购买清洗服务,哪个神仙能 10 分钟内解决?
    jadeborner
    jadeborner
    Sep 19, 2025
    133
    第二个问题也太抽象了,跟开发有什么关系
    guanzhangzhang
    guanzhangzhang
    Sep 19, 2025
    134
    能问出 mysql 不适合容器的,我估计 nginx 容器都照样玩不转的,云厂商的 rds 实例一定是本地盘吗,既然人家存储计算分离,docker run 选项全部和 host 一样-v bind mount 本地盘/块存储挂载路径/rdma 的路径之类的有啥问题,不会没有加选项用到只用 rootfs 隔离功能吧。
    增加运维成本?,sock 文件落地的目录挂载出去不会吗,容器起不来? mysql 实体进程起不来你不也是 cd 进目录和用 mysql 相关命令看吗,mysql 容器起不来不会 docker run --rm -ti -v data:/var/lib/mysql --entrypoint bash mysql_image_name 进去查和修复吗。
    按照你说的,那我也来喷下 java ,jdk8 不识别 cgroup 限制,不适合上容器,java 好多服务启动内存很高,Pod 容器启动的时候容易超过 limit 被杀掉😅,什么,我一个 java 开发还需要学这么多容器,那我还上容器干啥
    aiyayaya
    aiyayaya
    Sep 19, 2025
    135
    我有一个具体的案例, 因为安全问题我需要修改完配置之后重启 docker, 这时候如果是容器的 MySQL, 不得不面临重启 MySQL.
    KagurazakaNyaa
    KagurazakaNyaa
    Sep 19, 2025
    136
    自己菜不要怪工具难用
    我就是运维岗位,我们团队都习惯把数据库容器化部署,无论是数据可管理性还是可观测性还是部署的方便程度都要比手工部署好。同时 cicd 也好写,配置可以直接部署到自己构建的镜像里,灰度和实例轮替(依靠主备和 binlog )也都比直接手工部署要好,遇到问题也容易复现和解决
    salmon5
    salmon5
    Sep 19, 2025
    137
    等等,docker 安装 mysql 很难吗?应届生都能轻松搞定好吧
    探讨的必要性,要看场景和公司人力资源投入
    encro
    encro
    Sep 19, 2025
    138
    1.在大厂 MySQL 是不能用 Docker 的,为什么?

    因为大厂在用 k8s

    2.今天业务被 DDoS 了,你如何在 10 分钟内解决问题?

    切 ip 就行,刚好域名解析 10 分钟

    3.如果被爬虫爬了,你应该如何解决?

    开启 waf

    4.RAG 和 Agent RAG 有什么区别?

    Agent RAG 属于多步推理和工具链调用。
    wangtian2020
    wangtian2020
    Sep 19, 2025
    139
    我就用我就用,气死你。我不仅用 docker ,我还用不用 mysql 用 sqlite
    yuanxing008
    yuanxing008
    Sep 19, 2025
    140
    第一个问题 是哪个大厂?发一下好避雷
    keenkiller
    keenkiller
    Sep 19, 2025
    141
    @aiyayaya live-restore
    shiny
    shiny
    Sep 19, 2025
    142
    3. 如果被爬虫爬了,你应该如何解决?
    移交法务,报警抓起来
    rb6221
    rb6221
    Sep 19, 2025❤️1
    143
    是不是合格面试官的一个标准,提问方式。换成这样就好了:
    你认为 MySQL 能不能用 Docker ,如果能有什么优点,如果不能有什么缺点
    这种很明显就是开放题。
    abcgoodwei
    abcgoodwei
    Sep 19, 2025
    144
    @EastLord 第一个问题 我问过我在狗东的同学,他们是容器化的。
    calpes
    calpes
    Sep 19, 2025
    145
    首先,大厂的 db 是容器化的;
    其次,我不支持“随便拉个 mysql 容器起来就能直接用”这种说法,基本上各大厂都有类似 RDS 的服务,也都容器化了,但是其中从服务器的规格到定制的分布式存储与编排系统,恐怕除了 db 那个进程的容器以外,所有的基础设施都跟 crud boy 眼中的开箱即用容器服务没什么关系了;
    所以现实情况是,db 在大厂是个类似 RDS 的服务,有专门的技术团队,按照专门的规格和标准进行开发和保障,其中也许用到了容器化技术来支持伸缩弹性等功能,但是与标准意义上的开箱即用容器服务还是相差甚远。
    在大厂,一切将基础组件自运维的行为都是不提倡的,你把 db 容器与业务容器混布的行为那是弱智,你不混布单独抽集群做特殊优化保障,那你为什么不用场内的类 RDS 服务?还是说明你蠢。
    jimages
    jimages
    Sep 19, 2025
    146
    坐标,某大厂( batamd )之一。

    独享容器/ 24 核,供参考。
    manhere
    manhere
    Sep 19, 2025
    147
    “被 DDoS 在 10 分钟内解决问题”,有这能力的不用去面试上班
    AkinoKaedeChan
    AkinoKaedeChan
    Sep 19, 2025 via iPhone
    148
    可能有两个原因,一个是因为用的是 Kubernetes 另一个可能是不用 MySQL…
    dorothyREN
    dorothyREN
    Sep 19, 2025
    149
    在大厂 MySQL 是不能用 Docker 的,为什么?
    你就回答说: 我没在进过大厂
    notwaste
    notwaste
    Sep 19, 2025 via iPhone
    150
    近几个月最能学到东西的一个帖子
    ainming
    ainming
    Sep 19, 2025
    151
    要讨论问题就好好讨论,装什么面试官,搁论坛招聘啊?那先开个岗位待遇。
    被指出问题了就自己其实是夸张,只值得被群嘲。
    hitboy
    hitboy
    Sep 19, 2025
    152
    全部围观完,OP 爹味溢出屏幕了
    aiyayaya
    aiyayaya
    Sep 19, 2025
    153
    @tairan2006 关键 live-restore 也要在 daemon.json 的配置生效, 还是要重启 docker
    keenkiller
    keenkiller
    Sep 19, 2025
    154
    @aiyayaya 最开始就要配置上啊,包括日志的滚动……
    aiyayaya
    aiyayaya
    Sep 19, 2025
    155
    @tairan2006 所以说, 一般的开发场景, 数据库这种, 尽量二进制安装, 配合 systemd 管理.
    keenkiller
    keenkiller
    Sep 19, 2025
    156
    @aiyayaya 二进制安装升级很麻烦
    aiyayaya
    aiyayaya
    Sep 19, 2025
    157
    @tairan2006 这个看情况, 我升级单台, 抛除下载文件的时间, 基本上五分钟搞定 .
    二进制包放到 /usr/local/ 软链 /use/local/mysql , 数据目录, 日志目录也用软连, 每次更新版本, 重新软链一下就行了, 再 mysqlupdate 一下.
    aiyayaya
    aiyayaya
    Sep 19, 2025
    158
    6 年运维经验, 大大小小的数据库都见过, 乱七八糟的部署方式都有. 做好文档, 做好数据归档和定时备份
    比起不同方式带来的不同使用体验, 做好前者更重要.
    下次, 面试官问你为什么不用 docker 部署 MySQL, 你应该问他为什么不用 PostgreSQL 😁
    jiayouzl
    jiayouzl
    Sep 20, 2025
    159
    docker 不能部署 mysql ?靠,我都部署好多年了,从 mysql5 就开始这样用很方便!数据跟容器分离就行。
    Dlin
    Dlin
    Sep 20, 2025
    160
    各位大佬的回复让我收获良多,多点这样子的辩论吧
    michael2016
    michael2016
    OP
    Sep 22, 2025
    161
    @datoujiejie221 👍🏻
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1933 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 169ms · UTC 15:43 · PVG 23:43 · LAX 07:43 · JFK 10:43
    ♥ Do have faith in what you're doing.