什么是Podman?这里我们常说的Podman,是一个无守护进程的容器引擎,一般用于在Linux系统上开发、管理和运行OCI容器。那提到容器,我们是不是想到自己有在用的Docker,那两者之间有什么不同呢?
1、Podman和Docker区别
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Podman作为一款主流容器的可靠替代产品,旨在使用类似于Kubernetes的方法来构建、管理和运行容器。
Podman是一款集合了命令集的工具,设计初衷是为了处理容器化进程的不同任务,可以作为一个模块化框架工作。它的工具集包括:Podman:Pod和容器镜像管理器、Buildah:容器镜像生成器、Skopeo:容器镜像检查管理器、Runc:容器运行器和特性构建器,并传递给Podman和Buildah、Crun:可选运行时,为Rootless容器提供更大的灵活性、控制和安全性。
这些工具还可以与任何OCI兼容的容器引擎(如Docker)一起工作,使其易于转换到Podman或与现有的Docker安装一起使用。
2、Podman和Docker的区别
我们看看两者之间的区别有哪些,然后给我们自己选择一些参考。
1、守护进程
Docker使用守护进程,一个正在后台运行的程序,来创建镜像和运行容器。Podman是无守护进程的架构,这意味着它可以在启动容器的用户下运行容器。
2、安全性
Podman允许容器使用Rootless特权。Rootless容器被认为比Root特权的容器更安全。在Docker中,守护进程拥有Root权限,这使得它们易成为攻击者的首选入侵点。
Podman中的容器默认情况下不具有Root访问权限,这在Root级别和Rootless级别之间添加了一个自然屏障,提高了安全性。不过,Podman可以同时运行Root容器和Rootless容器。
3、镜像构建
作为一款自给自足的工具,Docker可以自己构建容器镜像。Podman则需要另一种名为Buildah的工具的辅助。
4、多合一和模块化
Docker是一个独立的、强大的工具,在整个循环中处理所有的容器化任务,有优点也有缺点。Podman采用模块化的方法,依靠专门的工具来完成特定的任务。