包管理 – 包和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 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Li...
1、什么是docker?答:docker是开源的应用容器引擎;开发人员把他们的应用及依赖包打包发布到容器当中。...
1、什么是namespace? 答:名称空间,作用隔离容器 2、namespace隔离有那些? 答:ipc:共享内存、消息队...
1、Docker能在非Linux平台(Windows+MacOS)上运行吗? 答:可以 2 、如何将一台宿主机的docker环境...
环境要求: IP hostname 192.168.1.1 node1 项目规划: 容器网段:172.16.10.0/24 NGINX:172.16.10.10...
文档上传地址:https://files.cnblogs.com/files/lin-strive/07-docker%E8%B7%A8%E4%B8%BB%E6%9C%BA%E7...