gpt4 book ai didi

Docker 处理图像而不是 Dockerfiles

转载 作者:行者123 更新时间:2023-12-02 18:14:33 25 4
gpt4 key购买 nike

有人可以向我解释为什么正常的 Docker 过程是从 Dockerfile 构建镜像,然后将其上传到存储库,而不是仅仅将 Dockerfile 移入和移出存储库吗?

假设我们有一台开发笔记本电脑和一台带有 Docker 的测试服务器。

如果我们构建镜像,这意味着上传和下载 Dockerfile 中的所有包。有时这可能非常大(例如 PyTorch > 500MB)。

与其在服务器之间传输大型图像文件,不如在本地编译图像以验证它是否正常工作,但主要是传输小型 Dockerfile 并在服务器上构建图像,这不是很有意义吗?

最佳答案

这开始是一条评论,但它变得太长了。它可能不是一个全面的答案,但无论如何都可能包含有用的信息。


通常,Dockerfile 将构成更大构建过程的一部分,之前阶段的输出文件将被复制到最终图像中。如果您想托管 Dockerfile 而不是最终图像,您还必须托管(通常是临时的)已处理文件或整个源代码库和构建脚本。

后者通常用于开源项目,但为方便起见,预构建的 Docker 镜像也经常可用。

这个问题的一个简洁的解决方案是使用 multi-stage builds 在 Dockerfile 中编写整个构建过程。 (在 Docker CE 17.05 和 EE 17.06 中引入)。但是,即使在单个 Dockerfile 中以独立于平台的方式描述了完整的构建过程,仍然必须提供完整的源存储库。

TL,DR:将 Docker 镜像视为常规二进制文件。下载安装方便,不用乱动源文件。您可以下载 C 应用程序的源代码并使用提供的 Makefile 构建它,但是如果二进制文件可用于您的系统,您为什么要这样做呢?

关于Docker 处理图像而不是 Dockerfiles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54047744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com