Dockerfile的优点

6 docker dockerfile

我们可以创建Docker镜像,并在没有Dockerfile的情况下将它们推送到Hub.为什么有一个Dockerfile很有用?它的优点是什么?Dockerfile创建是一个耗费时间很长的过程,只能由人工制作.我想知道基于基础映像,已提交映像和基于Dockerfile的映像之间的主要区别是什么.

pl_*_*ock 6

Dockerfile用于通过在 docker 镜像上指定我们想要的所有步骤来实现工作自动化。

\n\n
\n

Dockerfile 是一个文本文档,其中包含用户可以在命令行上调用以组装映像的所有命令。使用 docker\n 构建用户可以创建一个连续执行多个\n 命令行指令的自动构建。

\n
\n\n

是的,我们可以创建 Docker 镜像,但是每次我们想要进行任何更改时,您都必须手动更改并测试并推送它。

\n\n

或者,如果您将 Dockerfile 与 dockerhub 一起使用,那么它将自动重建并在每次修改时进行更改,如果出现问题,则重建将失败。

\n\n

Dockerfile 的优点

\n\n
    \n
  • Dockerfile 是 Docker 镜像的自动化脚本
  • \n
  • 当您想在不同操作系统风格上测试相同的设置时,手动创建映像将变得复杂,那么您必须为所有风格创建图像,但通过 dockerfile 的微小更改,您可以为不同风格创建图像
  • \n
  • 它具有简单的图像语法,并自动执行许多更改,而手动执行则需要更多时间。
  • \n
  • Dockerfile 有系统的步骤,其他人可以轻松理解,并且很容易知道基础镜像中的具体配置发生了哪些变化。
  • \n
\n\n

Dockerfile 与 dockerhub 的优势

\n\n
    \n
  • Docker Hub 为 Dockerfile 提供私有存储库。
  • \n
  • Dockerfile 可以在团队和组织之间共享。
  • \n
  • 自动构建镜像
  • \n
  • 附加到存储库的 Webhook,允许您在将图像或更新的图像推送到存储库时触发事件
  • \n
  • 我们可以将 Dockerfile 放在Github或者Bitbucket
  • \n
\n\n

提交镜像和 Dockerfile 镜像的区别

\n\n

提交的映像:它将容器\xe2\x80\x99s 文件更改或设置提交到新映像中。

\n\n
Usage:  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]\nCreate a new image from a container\'s changes\n\n  -a, --author=       Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")\n  -c, --change=[]     Apply Dockerfile instruction to the created image\n  --help=false        Print usage\n  -m, --message=      Commit message\n  -p, --pause=true    Pause container during commit\n
Run Code Online (Sandbox Code Playgroud)\n\n

调试容器并将更改的设置导出到另一个映像中是一个不错的选择。但是 docker 建议使用 dockerfile 请参阅此处,或者我们可以说提交是 docker 的版本控制或映像的备份。

\n\n
\n

提交操作将不包括容器内安装的卷中包含的任何数据。

\n\n

默认情况下,正在提交的容器及其进程将在提交映像时暂停。这降低了在创建提交的过程中遇到数据损坏的可能性。如果不需要此行为,请将 \xe2\x80\x98p\xe2\x80\x99 选项设置为 false。

\n
\n\n

基于 Dockerfile 的镜像:

\n\n

它总是使用基础图像来创建新图像。假设如果您对 dockerfile 进行了任何更改,那么它将在新映像上应用所有 dockerfile 步骤并创建新映像。但提交使用相同的图像。

\n\n

我的观点是,我们必须使用 dockerfile,它包含我们想要在映像上执行的所有步骤,但是如果我们从提交创建映像,那么我们必须记录我们所做的所有更改,如果我们想要创建新映像,我们可能需要这些更改,我们可以说dockerfile是镜像的文档。

\n