我理解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等配置管理系统仍然存在角色:在内部设置容器,或控制在哪些机器上部署哪些容器并将它们连接在一起.