CentOS 7 上编译安装 Podman 3.4.4
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情。
ntos 因为gpgme-devel版本过于老旧,所以无法支持Podman 4.x,支持最高版本为 3.4.4
目前Centos 7 从extras源安装 podman,安装的版本为 v1.6.4,而截止目前(2022年4月2日),podman最新版本为: v4.0.2,版本差距迭代太大,而github发布的版本中没有linux版本。所以我打算编译安装一下。
其中包含以下内容
- golang 安装(当前最新版本: 1.18)
- conmon 安装(当前最新版本: 2.1.0)
- runc 安装(当前最新版本: 1.1.1)
- podman安装(centos 7支持最高版本: 3.4.4)
centos extras podman 版本
so ,要是用较高版本,则需要我们自行构建一下
为避免安装过程中出现为止问题,请临时关闭selinux
setenforce 0
在centos 7上安装podman 3.4.4
在Centos 7 上安装golang
如果你的机器环境上没有golang环境的话,则需要先安装golang,版本需要在 v1.6 以上
查看golang版本
安装相关依赖
conmon 和 runc 安装
conmon
查看conmon版本
conmon是用C语言编写的工具,用于单个容器的管理器。和 OCI runc 或者 OCI crun通信
当容器运行时,conmon会做以下事情
- 提供一个用于附加到容器的套接字,保持打开容器的标准流并且通过套接字转发它们
- 将容器流的内容写入日志文件,以便在容器退出后读取它们
runc
查看runc版本
runc是golang写的关于CLI工具,用于根据OCI规范在 Linux上生成和运行容器。
设置CNI网络
默认情况下,CNI网络配置文件下载好后,无需配置,即可使用 podman
registries.conf: 容器镜像注册配置文件,文件格式为 TOML
policy.json:证书安全策略文件,文件格式为 JSON
安装podman
查看podman版本
podman支持可选的构建便签,用于编译支持各种功能,将要构建的标签添加到make选项,BUILDTAGS必须设置变量,例如 BUILDTAGS="selinux seccomp"
测试启动一个nginx容器
我们查看 系统占用:8081端口信息,我们会发现,进程是 conmon
心得体会
1、 最开始安装的时候,安装的是目前最新版本 v4.0.2,结果在make过程中抛错
在 github上了解到 是gpgme-devel引起的,主要原因还是 Centos 7太老了。

浙公网安备 33010602011771号