docker工和包装工有什么不同? configuration图像时应该select哪一个?

封隔器和docker工人有什么不同? 哪一个更容易/最快的提供/维护,为什么? 有一个docker文件有什么优点和缺点?

Docker是一个用于构build,分发和运行Docker容器的系统 。 容器可以在Linux和Windows上运行。

Packer是一个自动构build系统,用于pipe理为容器和虚拟机创build映像。 它输出一个图像,然后你可以在你需要的平台上运行。

其中包括Alicloud ECS,Amazon EC2,Azure,CloudStack,DigitalOcean,Docker,Google Cloud,Hyper-V,LXC,LXD,1&1,OpenStack,Oracle OCI,Parallels,ProfitBricks,QEMU,Triton,VirtualBox,VMware

Docker Dockerfile

Docker使用Dockerfile来pipe理构build,这些构build具有关于如何构build容器的特定指令和规则。

图像是分层构build的。 每个FROM RUN ADD COPY命令都会修改Docker镜像中包含的图层。 这些图层可以被caching,这有助于加速构build。 每个图层也可以单独寻址,这有助于在多个图像共享图层时使用磁盘和下载使用。

Dockerfiles有一些学习曲线,最好看一些正式的Docker镜像 ,以便遵循实践。

包装商dockerbuild设者

打包器不需要Dockerfile来构build容器映像。 它从指定的基础图像(如FROM )开始。 然后,打包程序允许您在该映像的顶部运行名为“Provisioners”的标准系统configuration工具。 像Ansible,Chef,Salt,Shells脚本等东西。这个图像将作为单层导出,所以与Dockerfile构build相比,您将失去图层caching/寻址优势。

Packer允许对构build容器进行一些修改,比如在构build时运行为--privileged或者安装卷,Docker构build的将不允许。

您可能想要使用Packer的时间是如果您想要为多个平台构build映像并使用相同的设置。 如果有configuration文件,也可以使用现有的构build脚本。