如果你查看 dockerfiles,通常包含这样的行:
sed 's/main$/main universe/' -i /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
我认为设立这样的事情是很困难的。
是否可以启动默认操作系统映像,然后与 shell 交互输入它,进行一些修改,然后打印出差异(文件系统差异)?
diff 应用作重新创建映像的 dockerfile。
但也许我错过了一些东西,因为我是码头工人的新手。
您可以通过多种方式创建 docker 镜像。
当我创建新的 Docker 映像时,我倾向于打开两个窗口。一个用于我的docker run -i -t centos bash,我在其中编写所有命令以按照我想要的方式获得它,另一个用于 Dockerfile,这样我就可以输入我所做的任何内容。当谈到配置文件时,我将它们放在与图像上的文件/文件夹匹配的文件/文件夹中。
例如,如果我更改/etc/something/file.conf,我将在etc/something/file.conf与 Dockerfile 相同的目录中创建该文件,然后ADD在每次构建时使用 Dockers 命令添加它。
这工作得很好,因为我可以将所有这些都放在 git 存储库中,其中包含 README.md ,其中包含运行/构建图像所需的信息。
您可以做的另一件事是在docker ps -a完成要创建映像的更改后运行,并获取刚刚配置的容器映像的 docker ID。docker run abc0123 bash您可以标记这个新映像,或者像普通的 docker 映像一样启动它。
这样做的问题是,如果不带上整个映像,您下次将无法轻松构建它。
带有 ADD 的 Dockerfile 是最佳选择!
| 归档时间: |
|
| 查看次数: |
2654 次 |
| 最近记录: |