Abh*_*raj 33 packer docker dockerfile docker-compose
包装工和码头工人有何不同?提供/维护哪一个更容易/最快?为什么?拥有docker文件的优缺点是什么?
Mat*_*att 41
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使用a Dockerfile
来管理构建,这些构建具有一组有关如何构建容器的指令和规则.
图像是分层构建的.每个FROM
RUN
ADD
COPY
命令都会修改Docker镜像中包含的图层.可以缓存这些层,这有助于加快构建.每个层也可以单独寻址,这有助于在多个图像共享图层时使用磁盘和下载.
Dockerfiles有一点学习曲线,最好查看一些官方的Docker图像,以便遵循实践.
Packer不需要Dockerfile
构建容器映像.它从指定的基本图像开始(如FROM
).Packer然后允许您在该图像的顶部运行名为"Provisioners"的标准系统配置工具.像Ansible,Chef,Salt,Shells脚本等等.然后,这个图像将作为单个图层导出,因此与Dockerfile构建相比,您将失去图层缓存/寻址优势.
Packer允许对构建容器进行一些修改,比如--privileged
在构建时运行或安装卷,Docker构建将不允许.
如果您想为多个平台构建图像并使用相同的设置,那么您可能希望使用Packer的时间.如果有一个配置器,它还可以很容易地使用现有的构建脚本.
Jes*_*olm 10
扩展哪一个更容易/最快地配置/维护,为什么?拥有 docker 文件有哪些优点和缺点?
从个人学习和使用两者的经验来看,我发现:(YMMV)
我在 Windows 上进行了开发,但我的目标是 LINUX 服务器来运行图像。除了在 Windows 上运行 Docker 的问题之外,这在开发过程中不是问题。
can't use that port!
但不是为什么它不能顺便说一句,解决方法是:
然而,在 Windows 上运行 packer 时,我发现的问题是我想要使用的配置程序 ansible 无法在 Windows 上运行。
叹。
所以我最终不得不在 LINUX 系统上运行 packer。
只是因为我感觉很反常,所以我写了一个,Dockerfile
这样我就可以使用该图像在 docker 容器中从我的 Windows 站运行packer
两者。ansible
归档时间: |
|
查看次数: |
10943 次 |
最近记录: |