包管理 – 包和Docker镜像之间的差异

前端之家收集整理的这篇文章主要介绍了包管理 – 包和Docker镜像之间的差异前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我理解PPA,但Docker对我来说是新手.在包管理方面,Docker和Dockerfiles与Ubuntu的个人包存档(PPA)有何不同?

最佳答案
包和容器映像是分发软件同时避免冲突的两种方式,尽管它们使用完全不同的方法.

包是由包管理器安装的文件包,例如RHEL中的RPM或Ubuntu中的APT,它在将文件写入一个之前检查以确保多个包使用兼容的库,不使用相同的文件名等.共享文件系统.然后,用户可以直接启动程序.

软件包通常来自存储库,由运行存储库的人员来决定哪个软件包可以控制每个文件名,网络端口,系统用户ID等,以及打包的程序版本.包是根据规范文件构建的,列出应包含哪些文件.

PPA(个人包存档)允许个人和小组发布他们自己的包,用于尚未被接受到主存储库的软件.

容器是沙箱,程序或程序组可以在其中运行,与系统的其余部分隔离.由于Linux内核支持每进程命名空间,因此它们只能访问自己的文件(具有单独的根目录和挂载表),网络接口等(就像更全面的chroot形式一样.)

因为容器只能访问自己的文件,所以有图像,形成容器初始状态的文件包.由于沙盒的存在,不需要与包装一样的协调.每个容器都包含它需要的特定版本的库.

Docker是一个容器管理器:它从指定的映像启动容器,设置其网络接口,记录其输出等.

它还管理图像:它可以从名为Dockerfiles的脚本构建它们,并将它们上传Docker Hub,这是一组(大多数)用户控制的存储库.

这两种方法可以组合在一起:您可以基于最小的RHEL或Ubuntu映像创建映像,并使用在容器内运行的yum或apt-get在其中安装包.

反过来也是可能的:一个包可以安装一个图像,虽然我没有听说有人这样做.

当然,最简单的安装Docker的方法with a package manager.

同样,Puppet和Chef等配置管理系统仍然存在角色:在内部设置容器,或控制在哪些机器上部署哪些容器并将它们连接在一起.

猜你在找的Docker相关文章