虽然,Docker 是众多 Linux 发行版最为常用的容器运行环境,但是它并不是 RHEL 系列发行版官方支持的,因为它们有一个基于 Podman 的容器管理库 podlib。这个库适配了类型于Kubernetes’ Container Pod 概念的功能,于是就有了 podlib 项目。通过 libpod 提供的 podman 工具就可以轻松实现容器、部署和镜像的管理。

我们可以将 Podman 定义为唯一的库工具,而不需要其他容器守护进程来管理容器及应用,Podman 将生成的容器以及应用都视为其子进程来统一管理。

基于 RHEL 的系统安装 Podman 非常简单,我们只需要确定 container-tools 模块可用即可。

1] RHEL 系统安装 Podman

安装 Podman 之前,需要将系统更新到最新,由于在安装过程中需要使用到 EPEL 软件库中的软件包,所以使用如下命令进行相关准备工作:

# dnf update
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
# dnf install epel-release

命令执行完成后,使用如下命令确定 Podman 容器工具模块可用:

# dnf module list | grep container-tools

图.1 确认 podman container-tools 模块可用

现在,启用并安装 container-tools 模块:

# dnf module enable -y container-tools:rhel8
# dnf module install -y container-tools:rhel8

图.2 安装 container-tools 模块

安装完成后,使用如下命令查看 podman 的版本信息,以确认 podman 可用:

# podman --version
podman version 3.3.1

2] RHEL 系统如何使用 podman

在正式使用 podman 进行交互和管理容器之前,我们需要启动该服务并查看其状态:

# systemctl start podman
# systemctl enable podman
# systemctl status podman

图.3 查看 podman 状态

podman 启动成功后,就可以使用相关功能了。

首先是查看和下载容器镜像:

# podman search name_of_image

其中”name_of_image”代表需要查找的镜像名称,例如 nginx,就可以使用如下命令进行查找:

# podman search nginx

需要下载该镜像,则使用 pull 命令拉取:

# podman pull nginx

图.4 下载容器镜像文件

现在就将”docker.io/library/nginx”镜像拉取到了本地镜像库中。

之后创建 podman 的容器:

# podman run -d --name rultr_webserver docker.io/library/nginx

利用下载的标准容器镜像,我们可创建一个关联的容器”rultr_webserver”,同样,我们可利用下载的标准镜像创建多个容器,只需要使用不同的容器名称区分它们就可以了。

创建完自己的容器后,可以使用”ps”命令来查看相关信息:

# podman ps

图.5 查看 podman 容器状态

容器启动成功后,最想要知道的就是实例的网络信息以及服务运行状态,可以使用如下命令获取 IP 地址信息:

# podman inspect rultr_webserver --format '{{.NetworkSettings.IPAddress}}'

图.6 获取实例网络信息

如果需要在容器中执行命令,则采用如下方式:

# podman inspect  exec -it rultr_webserver /bin/bash

图.7 在容器中执行命令

想要查看 podman 管理的所有容器状态信息,使用如下命令:

# podman stats

最后,不再需要的容器及镜像文件可以通过如下命令进行删除:

# podman stop rultr_webserver
# podman rm rultr_webserver
OR
# podman rm rultr_webserver --force
# podman rmi docker.io/library/nginx

图.8 删除容器及镜像文件

总体来说,podman 是 RHEL 系列发行版用户的巨大福利,是 Docker 的理想替借品,虽然 Docker 目前很强大,但podman 依然充满希望。

发表评论

您的电子邮箱地址不会被公开。