从Dockerfile中使用docker pull和docker build有什么优缺点?

3
我已经尝试了大约一个月的Docker,并且现在我有几个镜像。最近,我想将其中一个镜像分享给其他人,所以我将该镜像X推送到我的DockerHub,这样他就可以从我的存储库中拉取它。
然而,这似乎有些浪费时间。总共花费的时间包括我做docker push的时间和他做docker pull的时间。如果我只是把构建镜像X所需的Dockerfile发送给他,那么成本将是我编写Dockerfile的时间、传递文本文件的时间和他执行docker build的时间,由于我良好地维护我的Dockerfiles,所以总时间比之前短。
因此,我的问题是:这两种方法的利弊如何?为什么Docker公司选择推出DockerHub服务而不是DockerfileHub服务?
任何建议或答案都将不胜感激。非常感谢!
2个回答

5
假设您从Dockerfile构建图像并将该图像推送到Docker Hub。在构建过程中,您下载了一些源代码并构建了一个程序。但是,在构建完成后,这些源代码变得不可用。现在无法再使用Dockerfile,但Docker Hub上的图像仍然可以正常工作。这是Docker Hub的优点。
但这也可能成为缺点。例如,如果源代码包含了像Heartbleed或Shellshock这样的可怕漏洞。那么虽然源代码被修复,但Docker Hub上的镜像却没有得到更新。

0
实际上,推送镜像和构建镜像的时间取决于您的环境。例如,您可以为嵌入式系统预先构建一个镜像,但您不希望在嵌入式系统上构建它。
Docker Hub 提供了一个自动构建功能,它将从 GitHub 获取 Dockerfile 并构建镜像。因此,您可以从 GitHub 获取镜像的 Dockerfile,无需共享Dockerfile的服务。

谢谢您的建议!它确实很有帮助,但由于其他答案已经给出了比较,我接受了那个答案。无论如何还是感谢您! - user3427483

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接