我们可以创建Docker映像并将所有映像都推送到没有Dockerfile的Hub中。拥有Dockerfile为何有用?它有什么优势?Dockerfile的创建是一个耗费大量时间的过程,只能由人来创建。我想知道基于基础映像,提交的映像和基于Dockerfile的映像之间的主要区别是什么。
Dockerfile 通过指定我们要在docker映像上执行的所有步骤来用于工作自动化。
Dockerfile
Dockerfile是一个文本文档,其中包含用户可以在命令行上调用以组装映像的所有命令。使用docker build的用户可以创建自动执行的构建,该构建可以连续执行几个命令行指令。
是的,我们可以创建Docker映像,但是每当我们要进行任何更改时,您都必须手动更改并测试和推送它。
或者,如果您将Dockerfile与dockerhub一起使用,则它将自动重建并在每次修改时进行更改,如果出现问题,则重建将失败。
Dockerfile的优点
Dockerfile与dockerhub的优势
Github
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 <hannibal@a-team.com>") -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建议使用dockerfile 参见此处,或者我们可以说commit是docker的版本控制或映像的备份。
提交操作将不包含容器内安装的卷中包含的任何数据。 默认情况下,在提交映像时,将暂停提交的容器及其进程。这减少了在创建提交过程中遇到数据损坏的可能性。如果不希望出现这种情况,请将“ p”选项设置为false。
提交操作将不包含容器内安装的卷中包含的任何数据。
默认情况下,在提交映像时,将暂停提交的容器及其进程。这减少了在创建提交过程中遇到数据损坏的可能性。如果不希望出现这种情况,请将“ p”选项设置为false。
基于Dockerfile的映像:
它总是使用基础图像来创建新图像。让我们假设,如果您对dockerfile进行了任何更改,那么它将在新映像上应用所有dockerfile步骤并创建新映像。但提交使用相同的图像。
以我的观点,我们必须使用具有在映像上具有所有步骤的dockerfile,但是如果我们从commit创建映像,则必须记录所有我们要创建新映像可能需要的更改,我们可以说dockerfile是图像的文档。