Dockerfile
用于通过在 docker 镜像上指定我们想要的所有步骤来实现工作自动化。
Dockerfile 是一个文本文档,其中包含用户的所有命令
可以在命令行上调用来组装图像。使用码头工人
构建用户可以创建一个执行多个的自动构建
连续的命令行指令。
是的,我们可以创建 Docker 镜像,但是每次我们想要进行任何更改时,您都必须手动更改并测试并推送它。
或者,如果您将 Dockerfile 与 dockerhub 一起使用,那么它将自动重建并在每次修改时进行更改,如果出现问题,则重建将失败。
Dockerfile 的优点
- Dockerfile 是 Docker 镜像的自动化脚本
- 当您想在不同操作系统风格上测试相同的设置时,手动创建映像将变得复杂,那么您必须为所有风格创建图像,但通过 dockerfile 中的小更改,您可以为不同风格创建图像
- 它具有简单的图像语法,并自动执行许多更改,而手动执行则需要更多时间。
- Dockerfile 有系统的步骤,其他人可以轻松理解,并且很容易知道基础镜像中的具体配置发生了哪些变化。
Dockerfile 与 dockerhub 的优势
- Docker Hub 为 Dockerfile 提供私有存储库。
- Dockerfile 可以在团队和组织之间共享。
- 自动构建镜像
- 附加到存储库的 Webhook,允许您在将图像或更新的图像推送到存储库时触发事件
- 我们可以把 Dockerfile 放在
Github
or Bitbucket
提交镜像和 Dockerfile 镜像的区别
承诺形象:它将容器的文件更改或设置提交到新映像中。
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Create a new image from a container's changes
-a, --author= Author (e.g., "John Hannibal Smith <[email protected]>")
-c, --change=[] Apply Dockerfile instruction to the created image
--help=false Print usage
-m, --message= Commit message
-p, --pause=true Pause container during commit
调试容器并将更改的设置导出到另一个映像中是一个不错的选择。但 docker 建议使用 dockerfilesee here或者我们可以说提交是 docker 的版本控制或镜像的备份。
提交操作不会包含卷中包含的任何数据
安装在容器内部。
默认情况下,正在提交的容器及其进程将被
提交图像时暂停。这降低了以下可能性
在创建过程中遇到数据损坏
犯罪。如果不希望出现此行为,请将“p”选项设置为 false。
基于 Dockerfile 的镜像:
它总是使用基础图像来创建新图像。假设如果您对 dockerfile 进行了任何更改,那么它将在新映像上应用所有 dockerfile 步骤并创建新映像。但提交使用相同的图像。
我的观点是,我们必须使用 dockerfile,它包含我们想要在映像上执行的所有步骤,但是如果我们从提交创建映像,那么我们必须记录我们所做的所有更改,如果我们想要创建新映像,我们可以说dockerfile是镜像的文档。