趋近智
正如我们所说,机器学习 (machine learning)工作流程对数据有很强的依赖。你需要数据集来训练模型,在长时间训练过程中可能会生成中间检查点,最终还需要保存训练好的模型文件。在使用容器时,了解数据如何处理非常重要,因为其默认行为不适合数据持久化。
容器运行时,Docker 在只读镜像层之上创建了一个可写层。可以将镜像视为蓝图,容器则是根据该蓝图构建的运行实例。运行中的应用程序所做的任何更改,例如创建新文件、修改现有文件或下载数据,都会写入到这个容器特有的可写层。
这里的重点是,这个可写层是临时的。它与单个容器实例的生命周期关联紧密。当容器停止并移除时(这经常发生,例如更新应用程序或仅仅清理资源时),这个可写层及其包含的所有数据都会被永久删除。想象一下,下载了一个大型数据集或完成了数小时的模型训练,结果却在容器移除时所有成果都消失了。这显然不适用于大多数机器学习任务。
我们需要独立于容器生命周期持久化存储数据的方式。我们需要以下机制:
Docker 提供了两种主要机制来实现这些目标,它们是容器化机器学习应用中数据管理的主要方式:
下图展示了容器的临时层与这些持久化存储选项之间的关系。
容器可写层中的数据在容器移除时会丢失。绑定挂载直接链接到宿主机文件系统,而卷提供Docker管理的持久化存储。
理解容器内部临时存储与外部挂载持久化存储之间的这种区别,是有效管理容器化机器学习项目中的数据集、模型及其他文件的第一步。在后续章节中,我们将详细研究绑定挂载和卷,讨论它们在不同机器学习场景中的用例、优点和缺点。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•