作者:欧阳羽昌53 | 来源:互联网 | 2023-01-09 18:43
包装工和码头工人有何不同?提供/维护哪一个更容易/最快?为什么?拥有docker文件的优缺点是什么?
1> Matt..:
Docker是一个用于构建,分发和运行Docker容器的系统.容器可以在Linux和Windows上运行.
Packer是一个自动构建系统,用于管理容器和虚拟机的映像创建.它会输出一个图像,然后您可以在所需的平台上运行该图像.
对于v1.1,这包括 - 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使用a Dockerfile
来管理构建,这些构建具有一组有关如何构建容器的指令和规则.
图像是分层构建的.每个FROM
RUN
ADD
COPY
命令都会修改Docker镜像中包含的图层.可以缓存这些层,这有助于加快构建.每个层也可以单独寻址,这有助于在多个图像共享图层时使用磁盘和下载.
Dockerfiles有一点学习曲线,最好查看一些官方的Docker图像,以便遵循实践.
包装工Docker建设者
Packer不需要Dockerfile
构建容器映像.它从指定的基本图像开始(如FROM
).Packer然后允许您在该图像的顶部运行名为"Provisioners"的标准系统配置工具.像Ansible,Chef,Salt,Shells脚本等等.然后,这个图像将作为单个图层导出,因此与Dockerfile构建相比,您将失去图层缓存/寻址优势.
Packer允许对构建容器进行一些修改,比如--privileged
在构建时运行或安装卷,Docker构建将不允许.
如果您想为多个平台构建图像并使用相同的设置,那么您可能希望使用Packer的时间.如果有一个配置器,它还可以很容易地使用现有的构建脚本.
@ user239558 Packer没有实现docker build用来加速重复构建的层缓存。