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

如何避免删除MLflow Docker镜像时丢失UI存储的实验与模型数据?

解决MLflow Docker容器删除后数据丢失的问题

问题原因

你当前的启动命令没有指定MLflow的跟踪存储目录和工件存储根目录,MLflow默认会在容器的工作目录下创建mlruns文件夹来保存实验元数据(UI里的实验、运行记录)和模型工件,这个目录不在你挂载的/mlflow卷里,所以删除容器时这些数据就跟着丢失了——你之前挂载的/mlflow只有在容器shell里手动创建的数据才会被保存,因为MLflow server默认没用到这个路径。

解决方案

方案一:本地文件系统持久化(适合开发/测试)

修改启动命令,明确指定MLflow的元数据存储路径和工件存储路径到你挂载的/mlflow目录下:

docker run --restart always -itd --name mlflow -p 5000:5000 -v ~/mlflow:/mlflow ghcr.io/mlflow/mlflow mlflow server -h 0.0.0.0 --backend-store-uri /mlflow/mlruns --default-artifact-root /mlflow/artifacts

执行后,你在MLflow UI里创建的实验、运行记录会存在宿主机的~/mlflow/mlruns目录,训练生成的模型、日志等工件会存在~/mlflow/artifacts目录,删除容器后这些数据会完整保留。

方案二:数据库存储元数据(适合生产环境)

如果需要更可靠的元数据存储,可以用SQLite、MySQL等数据库。以SQLite为例,把数据库文件放在挂载的卷里:

docker run --restart always -itd --name mlflow -p 5000:5000 -v ~/mlflow:/mlflow ghcr.io/mlflow/mlflow mlflow server -h 0.0.0.0 --backend-store-uri sqlite:////mlflow/mlflow.db --default-artifact-root /mlflow/artifacts

这种方式下,实验的元数据会存在宿主机的~/mlflow/mlflow.db文件里,模型工件依然存在~/mlflow/artifacts,即使容器被删除,数据库文件和工件都不会丢失。


MLflow Docker镜像官方文档核心内容(中文翻译)

MLflow官方提供的Docker镜像包含完整的MLflow运行环境,可快速部署MLflow服务器:

  • 镜像默认工作目录为/opt/mlflow
  • 若不指定--backend-store-uri参数,MLflow默认会在当前工作目录创建mlruns文件夹,使用本地文件系统存储实验元数据
  • --default-artifact-root参数用于设置模型工件(训练模型、日志文件等)的默认存储位置,支持本地路径、云存储(如S3、Azure Blob)等多种类型
  • 要实现数据持久化,必须将元数据存储目录或数据库文件、工件存储目录挂载到宿主机,或使用远程数据库/云存储服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:32:03