You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker启动mysql/mysql-server:5.7容器时出现SegFault求助

调试MySQL 5.7 Docker容器段错误问题的步骤及所需补充信息

调试步骤

  • 降级Docker版本验证兼容性
    直接将Docker降级到25.0.2版本(同事可用的版本),确认是否为Docker版本引入的问题。根据你的操作系统执行对应降级命令:

    • Debian/Ubuntu系统:sudo apt install docker-ce=5:25.0.2-1~ubuntu.22.04~jammy(版本号需匹配你的系统发行版)
    • RHEL/CentOS系统:sudo yum install docker-ce-25.0.2-1.el7
      降级完成后重启Docker服务并重新启动容器。
  • 启用核心转储分析崩溃原因
    在docker-compose.yml中为MySQL服务添加核心转储相关配置,获取崩溃时的核心文件以便进一步分析:

    services:
      mysql:
        image: mysql/mysql-server:5.7
        environment:
          MYSQLD_DEBUG: "d,core"
        command: ["mysqld", "--core-file", "--user=mysql", "--initialize-insecure", "--default-time-zone=+00:00"]
    

    容器崩溃后,通过docker cp命令将核心文件拷贝到宿主机,使用gdb工具加载核心文件和MySQL二进制文件,分析崩溃栈信息。

  • 替换MySQL镜像小版本测试
    尝试使用mysql/mysql-server:5.7.40或更早的5.7系列小版本镜像,排除当前镜像(5.7.41)本身的问题。

  • 临时禁用Docker安全限制测试
    临时关闭Docker的seccomp或apparmor安全配置,验证是否为安全策略导致的段错误:

    docker run --rm --security-opt seccomp=unconfined mysql/mysql-server:5.7
    

    如果此命令能正常初始化数据库,说明安全配置存在兼容性冲突。

  • 检查宿主机系统差异
    对比同事的宿主机内核版本、操作系统更新记录,执行uname -a和cat /etc/os-release获取你的宿主机信息,排查是否为宿主机系统更新引入的兼容性问题。

需要补充的信息

  • 完整的docker-compose.yml内容:包括所有环境变量、卷挂载、网络配置、自定义命令等细节。
  • 宿主机操作系统及内核版本:执行uname -a和cat /etc/os-release的完整输出。
  • 容器启动的完整日志:包含段错误发生前后的所有日志内容,而非仅当前截取的几行。
  • Docker daemon配置:/etc/docker/daemon.json的内容,以及当前使用的存储驱动类型(执行docker info | grep Storage获取)。

内容的提问来源于stack exchange,提问作者DMCApps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 16:25:08