创建交互式 Dockerfile?

gue*_*tli 1 containers docker

如果你查看 dockerfiles,通常包含这样的行:

sed 's/main$/main universe/' -i /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

我认为设立这样的事情是很困难的。

是否可以启动默认操作系统映像,然后与 shell 交互输入它,进行一些修改,然后打印出差异(文件系统差异)?

diff 应用作重新创建映像的 dockerfile。

但也许我错过了一些东西,因为我是码头工人的新手。

xeo*_*eor 5

您可以通过多种方式创建 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 是最佳选择!