Podman 5 携多平台镜像和虚拟机支持而来

Podman 所做的所有更改最终汇聚成一个更灵活、更具响应能力的容器运行时引擎。

译自Podman 5 Arrives with Multiplatform Images, VM Support,作者 Jack Wallen。

如果你一直在使用 Podman 进行容器部署或开发,那么你将大饱口福。

Red Hat最近发布了Podman 容器管理系统的 5.0 版本,该版本完全重新设计了 Podman 虚拟机管理工具(podman-machine)的代码。

官方发布公告中提到:"Podman machine 包含一组子命令,用于管理 Podman 虚拟机,这是用户在 MacOS 或 Windows 上运行 Podman 所必需的。"

Podman 5.0中,新增了许多功能和改进,包括:

  • 新的_podman machine reset_选项,它简化了重置 Podman 虚拟机的过程
  • Podman 虚拟机的全新订阅管理器和_qemu-user-static_功能
  • Podman 虚拟机的更快的启动时间
  • 用于在远程机器上快速构建多平台镜像的_podman farm build_
  • 增加了对开放容器计划工件的支持的 podman manifest
  • 对无根网络工具的更改,以获得性能更高的网络堆栈

对 Podman 所做的所有更改最终都汇集到一个更灵活、响应更快的容器运行时引擎中。

问题

目前使用 Podman 5 的能力相当有限。据我所知,截至本周,获取/测试 Podman 5 的唯一途径是通过Fedora Linux,因为其他发行版的存储库中唯一可用的版本是 4.x。对于 Fedora,安装 Podman 5 的唯一途径是通过开发版本。

如何在 Fedora 上安装 Podman 5

首先,我不建议在生产机器上安装 Podman 的开发版本。仅在测试环境中使用它。我也不会建议在虚拟机上执行此操作,因为 Podman 将难以访问 KVM 系统。

另一个问题是,你无法使用 Fedora 40 beta 1 之前的任何 Fedora 版本。如果你使用的是 39 或更早版本的 Fedora,则此方法将不起作用。因此,你需要做的第一件事是下载 Fedora 40 beta 的 ISO。完成后,创建一个可引导闪存驱动器,启动进入 Fedora 40 beta 1,然后安装操作系统。

安装 Fedora 40 beta 1 后,你可以使用以下命令安装 Podman 5.0 的开发版本:

css 复制代码
sudo dnf update --refresh --enablerepo=updates-testing podman

完成后,你可以使用以下命令验证安装:

css 复制代码
podman --version

你应该在输出中看到类似以下内容:

podman version 5.0.1

Podman 5.0 最好的功能之一是能够快速重置机器环境。此命令将停止所有正在运行的机器并删除它们。此外,还将删除配置数据文件(例如机器磁盘映像和先前提取的缓存映像)。该命令只有一个选项,即 --force(或仅 -f),它在未经确认的情况下重置所有内容。

假设你创建了几个机器,如下所示:

  • podman machine init dev1
  • podman machine init dev2
  • podman machine init web1
  • podman machine init web2

然后,你使用以下命令启动它们:

sql 复制代码
podman machine start dev1
podman machine start dev2
podman machine start web1
podman machine start web2

接下来,你使用以下命令访问每台机器:

podman machine ssh NAME

其中 NAME 可以是_dev1_、dev2web1_或_web2

访问机器后,你开展了开发工作,运行了一些测试,或者对机器执行了任何你需要执行的操作。使用完这些机器后,如果你想使用 Podman 4.x 摆脱它们,则必须分别停止它们,然后使用以下命令删除它们:

arduino 复制代码
podman machine stop NAME
podman machine rm NAME

其中 NAME 可以是 dev1、dev2、web1 或 web2。

使用 Podman 5.0,可以使用以下命令完成所有这些操作:

perl 复制代码
podman machine reset

你的所有机器都将被停止并删除(以及关联的文件和数据)。

新版本还包括podman farm build命令,该命令在 farm 节点上构建镜像,然后将它们捆绑到清单列表中。我还没有测试过此功能,但根据手册页(使用man podman-farm阅读):

Podman 通过读写位于$XDG_CONFIG_HOME/containers下的podman-connections.json文件来管理 farm,如果未设置 env,则默认为$HOME/.config/containers。 或者可以将PODMAN_CONNECTIONS_CONF环境变量设置为 podman 将使用的一个完整文件路径。此文件由 podman 命令管理,用户切勿直接编辑。要手动配置 farm,请使用containers.conf中的[farm]部分。

对于那些不使用 Fedora 40 的人,我还没有发现任何迹象表明它何时可用于不同的发行版。如果我猜的话,Podman 5.0 将在今年随 9.4 版本进入 Red Hat Enterprise Linux。如果发生这种情况,它很可能会很快进入Rocky LinuxAlmaLinuxOracle Linux

同样重要的是,在更新到 Podman 5.0 之前,用户要了解 Podman 4 机器与 Podman 5.0 不兼容。因此,在升级到 5.0 之前,您应该删除所有 Podman 4 机器。在删除这些机器并升级到 Podman 5.0 之后,还建议在部署任何新机器之前运行podman machine reset命令。

要详细了解 Podman 5.0,请查看Podman 网站上的新功能摘要文章

本文在云云众生yylives.cc/)首发,欢迎大家访问。

相关推荐
iangyu34 分钟前
docker常用命令
运维·docker·容器
飞酱不会电脑4 小时前
云计算第四阶段 CLOUD2周目 01-03
云原生·容器·kubernetes
程序那点事儿5 小时前
k8s 之安装busybox
云原生·容器·kubernetes
是芽芽哩!6 小时前
【Kubernetes】常见面试题汇总(五十八)
云原生·容器·kubernetes
福大大架构师每日一题17 小时前
22.1 k8s不同role级别的服务发现
容器·kubernetes·服务发现
莹雨潇潇17 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
tangdou36909865518 小时前
1分钟搞懂K8S中的NodeSelector
云原生·容器·kubernetes
tangdou36909865521 小时前
Docker系列-5种方案超详细讲解docker数据存储持久化(volume,bind mounts,NFS等)
docker·容器
later_rql21 小时前
k8s-集群部署1
云原生·容器·kubernetes
大G哥1 天前
记一次K8S 环境应用nginx stable-alpine 解析内部域名失败排查思路
运维·nginx·云原生·容器·kubernetes