docker 容器内的 MLflow 运行 - MLflow 项目文件中的 运行 "docker_env"

MLflow run within a docker container - Running with "docker_env" in MLflow project file

我们正在尝试开发 MLflow 管道。我们在一系列 docker 中拥有我们的开发环境(没有本地 python 环境“无论如何”)。这意味着我们已经使用 MLflow 和 运行 管道所需的所有要求设置了一个 docker 容器。我们遇到的问题是,当我们编写 MLflow 项目文件时,我们需要使用“docker_env”来指定环境。此图说明了我们想要实现的目标:

MLflow run dind

docker 中的 MLflow 需要访问 docker daemon/service 以便它可以使用 MLflow 项目文件中的“docker-image”或拉取它来自 docker 中心。我们知道在 MLflow 项目文件中使用“conda_env”的可能性,但希望避免这种情况。

我们的问题是,

我们是否需要设置某种“docker in docker”的解决方案来实现我们的目标?

是否可以设置 MLflow 在其中 运行ning 的 docker 容器,以便它可以访问“主机”docker 守护程序?

我已经遍历了 Google 和 MLflow 的文档,但我似乎可以找到任何可以指导我们的东西。非常感谢您的帮助或指点!

我设法在 MLflow 中使用 docker 和 docker_env 创建了我的管道。没必要运行d-in-d,“兄弟方法”就足够了。此处描述了此方法:

https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

这是避免d-in-d的首选方法。

在主要和次要环境中安装卷时需要非常小心 docker:所有卷安装都发生在主机中。