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
在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
太老了。