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

Docker问题:执行docker run后MySQL容器持续处于Exited状态

解决MySQL容器启动后立即退出的问题

你的Dockerfile里设置的环境变量不符合官方MySQL镜像的要求,这是容器启动失败的核心原因。官方MySQL镜像只识别特定的环境变量来完成初始化,你自定义的DB_HOST、DB_NAME这类变量镜像根本不会处理,而且关键的启动参数缺失。

修正后的Dockerfile

FROM mysql:latest

# 官方MySQL镜像必填环境变量:root用户密码(必须设置,否则容器直接退出)
ENV MYSQL_ROOT_PASSWORD=mm22
# 可选:容器启动时自动创建指定数据库,对应你原来的DB_NAME
ENV MYSQL_DATABASE=productsdb

# 你的自定义变量可保留,仅用于自身应用,MySQL镜像不会读取
ENV DB_HOST=localhost
ENV DB_DIALECT=mysql
ENV SERVER_PORT=5000
ENV DB_PORT=3306

关键说明

  • MYSQL_ROOT_PASSWORD是官方镜像启动的必填项,缺失会直接导致容器退出,这是你当前问题的主要诱因。
  • MYSQL_DATABASE是可选参数,设置后容器启动阶段会自动创建该数据库,省去手动创建的步骤。
  • 你自定义的DB_HOST、SERVER_PORT等变量可以保留,但仅对你自己的应用程序生效,MySQL镜像本身不会使用这些配置。

启动命令示例

构建镜像并启动容器:

docker build -t my-mysql .
docker run -d -p 3306:3306 my-mysql

启动后可通过docker logs <容器ID>查看日志,确认容器是否正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 04:50:16