searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Podman在CTyunOS上使用

2024-07-11 09:37:49
59
0

一、     在CTyunOS-2.0.1上进行podman-3.0的移植

在CTyunOS上自带了podman软件,但是podman软件的版本比较低,版本为0.10版本,一些podman的功能并没有提供,在直接使用的时候,可能还需要配置一下环境变量的配置文件,如果对容器或者podman不熟悉的人直接上手可能还存在一些问题,因此我们移植一个比较成熟的podman3到CTyunOS系统中(手动编译)。

移植的主要步骤如下:

  1. 下载源码包
  2. 编译源码包
  3. 解决依赖
  4. 依赖全部解决进入下一步,有不满足的依赖包则回到步骤1
  5. 安装编译好的podman

本次移植podman需要的软件包及其依赖包含如下:

  • fuse-overlayfs
  • golang-1.15.7-1
  • podman-3.0.1-13
  • runc-1.0.3-3
  • slirp4netns-0.4.2-3

以上依赖的软件包中包含了golang,虽然podman-3.0.1的编译依赖中对golang的要求的版本是1.12.12,但是在编译过程中会报错,导致无法编译成功,因此选择自行升级golang版本,对podman进行编译。在使用0329版本CTyunOS的everything版本的ISO做本地源编译fuse-overlayfs的时候,需要手动安装下fuse3这个编译依赖,在fuse-overlayfs的包中未写全依赖。

移植编译完成之后有两种方式进行podman安装:

1. 通过yum install xx.rpm进行安装 – 需要自己去手动解决未选中的依赖包

2. 做一个临时yum源然后通过yum来安装

二、使用pod

容器是使用podman管理的最小单元。Podman pod是一个或多个容器的组。Pod的概念是由Kubernetes引入的。

在podman创建pod的时候可能存在pod由于无法下载pause镜像而导致pod创建失败的问题。可以通过镜像站点下载然后重新打tag来完成。

创建空pod及查看pod的命令如下:

在现有的pod中运行一个httpd容器:

还可以通过命令查看当前pod中容器运行的进程占用的资源情况(如果pod中只有pause一个容器,则podman pod top podname则不会有输出,pause容器不会占用资源):

使用curl来验证当前httpd容器是否可以正常运行:

查看pod中容器的资源使用情况:

三、修改podman的容器运行时

podman支持runc和crun两种容器运行时。crun是runc的c语言实现版本,目前高版本的podman默认使用的是crun这个容器运行时。crun具有体积小,运行速度快的优势。以下为crun和runc的可执行文件大小的对比:

1.     临时修改容器运行时

podman中临时修改容器运行时通过在创建容器的时候添加—runtime=runc/crun。

2.     修改默认容器运行时

修改默认的容器运行时需要根据不同用户进行修改,普通用户的修改不会影响root用户的容器运行时,也不会影响其他用户的容器运行时。

Format格式的在帮助手册中没有,需要我们自己去代码中查找相关字段进行测试。

 

 

参考连接:

podman官网文档: What is Podman? — Podman documentation

红帽官方文档: Building, running, and managing containers Red Hat Enterprise Linux 8 | Red Hat Customer Portal

0条评论
0 / 1000
西红柿牛腩泡饼
4文章数
0粉丝数
西红柿牛腩泡饼
4 文章 | 0 粉丝
西红柿牛腩泡饼
4文章数
0粉丝数
西红柿牛腩泡饼
4 文章 | 0 粉丝
原创

Podman在CTyunOS上使用

2024-07-11 09:37:49
59
0

一、     在CTyunOS-2.0.1上进行podman-3.0的移植

在CTyunOS上自带了podman软件,但是podman软件的版本比较低,版本为0.10版本,一些podman的功能并没有提供,在直接使用的时候,可能还需要配置一下环境变量的配置文件,如果对容器或者podman不熟悉的人直接上手可能还存在一些问题,因此我们移植一个比较成熟的podman3到CTyunOS系统中(手动编译)。

移植的主要步骤如下:

  1. 下载源码包
  2. 编译源码包
  3. 解决依赖
  4. 依赖全部解决进入下一步,有不满足的依赖包则回到步骤1
  5. 安装编译好的podman

本次移植podman需要的软件包及其依赖包含如下:

  • fuse-overlayfs
  • golang-1.15.7-1
  • podman-3.0.1-13
  • runc-1.0.3-3
  • slirp4netns-0.4.2-3

以上依赖的软件包中包含了golang,虽然podman-3.0.1的编译依赖中对golang的要求的版本是1.12.12,但是在编译过程中会报错,导致无法编译成功,因此选择自行升级golang版本,对podman进行编译。在使用0329版本CTyunOS的everything版本的ISO做本地源编译fuse-overlayfs的时候,需要手动安装下fuse3这个编译依赖,在fuse-overlayfs的包中未写全依赖。

移植编译完成之后有两种方式进行podman安装:

1. 通过yum install xx.rpm进行安装 – 需要自己去手动解决未选中的依赖包

2. 做一个临时yum源然后通过yum来安装

二、使用pod

容器是使用podman管理的最小单元。Podman pod是一个或多个容器的组。Pod的概念是由Kubernetes引入的。

在podman创建pod的时候可能存在pod由于无法下载pause镜像而导致pod创建失败的问题。可以通过镜像站点下载然后重新打tag来完成。

创建空pod及查看pod的命令如下:

在现有的pod中运行一个httpd容器:

还可以通过命令查看当前pod中容器运行的进程占用的资源情况(如果pod中只有pause一个容器,则podman pod top podname则不会有输出,pause容器不会占用资源):

使用curl来验证当前httpd容器是否可以正常运行:

查看pod中容器的资源使用情况:

三、修改podman的容器运行时

podman支持runc和crun两种容器运行时。crun是runc的c语言实现版本,目前高版本的podman默认使用的是crun这个容器运行时。crun具有体积小,运行速度快的优势。以下为crun和runc的可执行文件大小的对比:

1.     临时修改容器运行时

podman中临时修改容器运行时通过在创建容器的时候添加—runtime=runc/crun。

2.     修改默认容器运行时

修改默认的容器运行时需要根据不同用户进行修改,普通用户的修改不会影响root用户的容器运行时,也不会影响其他用户的容器运行时。

Format格式的在帮助手册中没有,需要我们自己去代码中查找相关字段进行测试。

 

 

参考连接:

podman官网文档: What is Podman? — Podman documentation

红帽官方文档: Building, running, and managing containers Red Hat Enterprise Linux 8 | Red Hat Customer Portal

文章来自个人专栏
podman
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0