0

Podman 是什么

 2 years ago
source link: https://www.techug.com/post/what-is-podman.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

容器化的革命是从 Docker 开始的,Docker 的守护进程管理着所有的事情,并成为最受欢迎和广泛使用的容器管理系统之一。

但是 Docker 并不是唯一有效的容器化方式,除了 Docker 还有其他的工具可选,比如 Podman 。

官方对 Podman 的定义是 A tool for managing OCI containers and pods 。Podman 官方网站 : https://podman.io/Podman 的 GitHub 地址是 : https://github.com/containers/podman

Docker vs Podman

Docker

Docker 是一个容器化平台,在这个平台中,我们可以将我们的应用程序与容器中的库和环境绑定在一起。 Docker Container 在某种程度上类似于虚拟机。

Docker 的两个主要组成模块是: Docker Daemon 和 Docker CLI。

Docker Daemon: 一个常驻的后台进程,帮助管理和创建 Docker 镜像、容器、网络和存储卷。

Docker Engine REST API: 一个应用程序用来与 Docker 守护进程进行交互的 API; 可以通过 HTTP 客户端访问它。

Docker CLI: 一个用来与 Docker 守护进程进行交互的 Docker 命令行客户端,也就是 Docker 命令。

如果换个角度思考,我们可以把下面这些问题与 Docker 联系起来:

众所周知,Docker 运行在单个进程上,这可能会导致单点故障。所有子进程都归属于此进程。无论何时,如果 Docker 守护进程失败,所有子进程都会失去跟踪并进入孤立状态。安全漏洞。对于 Docker 的操作,所有步骤都需要由 root 执行。

Podman

Podman 是一个无守护进程的容器引擎,用于在 Linux 系统上进行开发、管理和运行 OCI Containers。 Containers 能以 root 模式运行,也能以非 root 模式运行。Podman 直接与镜像注册表、容器和镜像存储进行交互。我们知道,Docker 是建立在 runC 容器运行时之上,并且使用了守护进程的; Podman 中没有使用守护进程,而是直接使用 runC 容器运行时。

Podman 不需要启动或管理像 Docker daemon 那样的守护进程。适用于 Docker 的命令在 Podman 中也是同样可用的。您可以指定命令别名:alias docker=podmanPodman 和 Docker 的镜像具有兼容性。

Podman 安装

Podman 可以运行在 Windows 、Linux 、macOS 。

在 CentOS 7 上可以直接使用 yum 进行安装,

yum install podman

但是这样安装的版本可能会比较旧。

由于 Podman 是用 Golang 开发的,所有我们也可以直接下载官方编译好的文件来获取最新安装包。

wget https://github.com/containers/podman/releases/download/v2.2.1/podman-remote-static.tar.gz

下载解压以后就获得了一个可执行的二进制包,将这个包放到系统目录下,就可以用了。

其他的一些安装方式获取最新的版本

CentOS 7 or 8

# CentOS 7
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_7/devel:kubic:libcontainers:stable.repo
sudo yum -y install podman


# CentOS 8
sudo dnf -y module disable container-tools
sudo dnf -y install 'dnf-command(copr)'
sudo dnf -y copr enable rhcontainerbot/container-selinux
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_8/devel:kubic:libcontainers:stable.repo
sudo dnf -y install podman
sudo dnf -y update


# CentOS Stream
sudo dnf -y module disable container-tools
sudo dnf -y install 'dnf-command(copr)'
sudo dnf -y copr enable rhcontainerbot/container-selinux
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_8_Stream/devel:kubic:libcontainers:stable.repo
sudo dnf -y install podman
sudo dnf -y update

安装方式大全集 https://podman.io/getting-started/installation

本文文字及图片出自 InfoQ


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK