在开始之前我们需要了解一下docker与podman的基本概述和区别才行:
Docker
1、概述:
Docker 是目前最流行的开源容器平台,自 2013 年推出以来,已经成为容器技术的代名词。Docker 提供了一种简单、高效的方式来打包、分发和部署应用程序,使得开发、测试和生产环境更加一致。
2、架构:
Docker 使用客户端-服务器架构,其中包括一个守护进程(Docker Daemon)和一个命令行客户端。这种架构使得 Docker 可以方便地进行远程管理,但也带来了一定的安全隐患。
Podman
1、概述:
Podman 是 Red Hat 推出的一款容器运行时,与 Docker 类似,它也支持 OCI(Open Container Initiative)标准。Podman 的设计目标是提供一个与 Docker 相似的用户体验,同时解决一些 Docker 存在的问题,如守护进程依赖和特权安全问题。
2、架构:
与Docker不同的是Podman 采用无守护进程架构,它直接与容器运行时(如 runc )进行通信。这种设计使得 Podman 更加轻量级,同时避免了守护进程可能导致的安全问题。
总结:
总结上面的一些概述和架构就能知道他们最大的区别就是docker是拥有一个守护进程的程序,而podman则不需要守护进程就能够使用。这时候可能就有读者有疑问了,说,那啥是守护进程???到底有啥用?
守护进程简述:
守护进程:
守护进程(Daemon Process)是指在后台运行的程序,通常在系统启动时启动,负责执行各种系统服务或任务。它们通常不直接与用户交互,它们主要用于执行系统服务、任务调度和提供后台功能。
实际应用:
emm其实这个问题,我了解的也不是很多,不过有一个很明显的操作区别就是,你在ubuntu上使用docker的时候你会发现每次使用普通用户执行docker一些特殊的命令,你可能就会遇到权限不够的问题,需要使用sudo的权限,这就是有守护进程的程序。(你可以使用ps ajx|more来查看一下你linux系统的守护进程有哪些)
而用podman的话就不会导致这种情况出现,他是单独运行,不会过多涉及到root权限