将Dockerfile转换为Bash脚本

有没有简单的方法将Dockerfile转换为Bash脚本,以便在真实操作系统上安装所有软件? 其原因是docker集装箱我不能改变,如果他们不工作,我想事后改变一些东西。

总之 – 没有。

通过使用诸如dockerfile-parse之类的工具parsingDockerfile,您可以运行单独的RUN命令,但是这不会复制Dockerfile的输出。

你将不得不运行相同的操作系统相同的版本。

ADDCOPY命令会影响文件系统,它位于其自己的命名空间中。 在容器外部运行这些可能会破坏主机系统。 您的主机也将在容器映像不会的地方有文件。

VOLUME挂载也会影响filesytem。

FROM图像(也可能是其他图像的后代)可能安装了其他应用程序。

如果有大量安装或下载步骤,编写Dockerfiles可能是一个缓慢的过程。 为了缓解这种情况,请尝试添加新的软件包作为新的RUN命令(以充分利用caching)并增量添加function,只在function完成时优化/压缩这些层。

你也可能想使用像ServerSpec这样的东西来获取容器镜像的TDD方法,并防止开发过程中的回归。

最佳实践文档在这里 , 陷阱和原文 。

你可以像这样在dockerfile里面安装应用程序

 FROM <base> RUN apt-get update -y RUN apt-get install <some application> -y 

基本上可以使用“docker export”复制一个Docker容器的文件系统,然后写入一个循环设备:

 docker build -t <YOUR-IMAGE> ... docker create --name=<YOUR-CONTAINER> <YOUR-IMAGE> dd if=/dev/zero of=disk.img bs=1 count=0 seek=1G mkfs.ext2 -F disk.img sudo mount -o loop disk.img /mnt docker export <YOUR-CONTAINER> | sudo tar x -C /mnt sudo umount /mnt 

将Docker容器转换为原始文件系统映像。

更多信息在这里: http : //mr.gy/blog/build-vm-image-with-docker.html