概述
Podman Desktop 是一款免费的开源工具,可简化在本地开发人员环境中使用容器化软件应用的过程。借助 Podman Desktop,开发人员可以在他们的本地 Windows、macOS 或 Linux® 环境中通过图形用户界面(GUI)管理容器。
Podman Desktop 与容器管理工具 Podman 项目相关联。红帽则是 Podman 和 Podman Desktop 开源项目的主要贡献者。
为什么要采用容器和 Kubernetes?
Podman Desktop 的优势与采用容器的优势相辅相成。容器将运行应用所需的所有文件打包成一个镜像,该镜像可在不同的计算环境中轻松、一致地进行部署。容器化应用之间彼此隔离,这意味着对一个应用产生影响的问题不会影响到其他应用。无需中断其他容器或其他服务,即可停止并重新启动某个容器。
容器化方法非常适合用于混合云开发。您构建并测试某个应用,都会期望它在开发、测试和生产环境中都能以相同的方式运行,无论这些环境是本地部署、云环境还是多云环境。
现在,假设我们使用容器化服务来支持大型企业用例。这需要使用许多不同的容器协同工作,并依赖于共享的计算资源池。软件团队采用了 Kubernetes,一个旨在管理大规模容器群的开源容器编排平台。通过容器化开发和采用 Kubernetes,软件团队可以为大型项目提供支持,同时保持快速迭代和可扩展性。他们还可以建立容器安全防护控制并纳入持续集成和持续交付(CI/CD)管道。
这一切听起来都很美好,但应用团队需要提前设计并构建适用于 Kubernetes 的软件,才能充分利用容器。然而,许多软件团队使用 Kubernetes 的经验有限。Podman Desktop 解决了这个问题,可让开发人员通过实训体验来逐渐熟悉容器,并加深对 Kubernetes 的理解。Podman Desktop 还可帮助他们处理容器化应用的持续本地开发。
此外,Podman Desktop 可让开发人员在本地环境中进行开发,既不会影响外部资源,也无需等待运维团队置备基础架构。
在深入探讨 Podman Desktop 之前,我们先来了解一下 Podman 项目以及它提供的功能。
红帽资源
什么是 Podman?
Podman(容器集管理器的简称)是一个用于处理容器的开源项目,为 Podman Desktop 提供了基础。Podman 默认支持无根容器,通过最大限度地减少对根特权的需求以及降低系统漏洞风险来增强安全性。
Podman 可将容器分组为容器集(pod),一起运行并共享资源,与 Kubernetes 容器集类似。Podman 通过命令行接口(CLI)和 libpod 库来管理这些容器集,libpod 库提供用于管理容器、容器集、容器镜像和卷的应用编程接口(API)。
默认情况下,Podman 创建并支持开源容器运动(OCI)容器,这种容器旨在满足容器运行时和格式的业界标准。它还可运行 Docker 格式的镜像。Podman 是功能齐全的 Docker 替代工具,也可与 Docker 搭配使用,因为两者可互相兼容。
Podman Desktop 有哪些用途?
借助 Podman Desktop GUI,您可以在工作站或笔记本电脑上本地构建、运行、管理和调试容器与容器集。无论是否使用 Kubernetes,您都可以运行容器集并管理多个容器引擎。
使用容器
Podman Desktop 可让您从任何镜像仓库中拉取容器镜像。它还为您提供单一的统一容器视图,并提供点击式控制来启动、停止、删除、重启、导出和部署容器。您可以:
- 在不离开 Podman Desktop 界面的情况下,查看日志并通过命令行(shell)直接进入一个正在运行的容器。
- 构建自己的容器镜像,并将它们推送到任何镜像仓库中。
- 将容器分组为应用的容器集,并查看容器集的统一日志。
使用 Kubernetes
使用 Podman Desktop 可让您很好地熟悉无守护进程架构和容器集等 Kubernetes 概念,并将这些概念应用于日常实践。您可以:
- 通过生成 YAML 格式的 Kubernetes 指令,让应用准备好进行 Kubernetes 部署。
- 在部署到集群之前,先在本地测试 Kubernetes YAML。
- 快速启动本地 Kubernetes 集群并测试您的应用。
- 将您的应用推送到部署流程。
实现企业级功能
Podman Desktop 包含一些在大型企业环境中非常实用的功能。您可以配置虚拟专用网络(VPN)和代理,与多个镜像仓库交互,并通过红帽® OpenShift® 连接和部署到远程集群。
使用可引导容器
可引导容器可在容器中嵌入完整的操作系统。借助 Podman Desktop 的 bootc 扩展,您能够以常见格式创建适用于裸机硬件、Amazon Web Services、虚拟机等的可引导容器镜像。
通过 Podman Desktop 扩展实现更多可能
您可以使用扩展为 Podman Desktop 添加功能。有些扩展可添加与容器引擎提供商和 Kubernetes 提供商的集成,或者启用相应的操作、菜单、配置和其他便捷功能。
接下来,我们来看看两个扩展包,它们可以简化使用大语言模型(LLM)和红帽平台的过程。
什么是 Podman AI Lab?
借助 Podman AI Lab 扩展包,Podman Desktop 可成为试验生成式人工智能(gen AI)应用的入口点。
Podman AI Lab 可提供一个 GUI,用于在本地环境中构建、测试和运行大语言模型(LLM)应用。在本地运行 LLM 可以简化您的架构,并消除与外部 AI 服务共享敏感数据的风险。
Podman AI Lab 提供一系列适用于常见 gen AI 用例的方案,包括聊天机器人和代码生成用例。您可以从具有开源许可的精选 LLM 列表中选择并下载所需的 LLM,然后在本地运行。此外,只需完成几个步骤即可设置试验环境,以供您试用不同的 LLM。
什么是 Podman Desktop 红帽扩展包?
Podman Desktop 的红帽扩展包是使用红帽平台的入口。如果您正在开发将要部署到红帽 OpenShift 的应用,那么这些免费扩展可帮助您在本地环境和生产环境之间建立连接。
红帽 OpenShift 本地版扩展
红帽 OpenShift 是一个企业应用平台。借助此扩展,在您的本地环境中开始使用红帽 OpenShift,并了解如何配置和设置单节点红帽 OpenShift 集群。
红帽 OpenShift 开发人员沙盒扩展
红帽 OpenShift 开发人员沙盒可让您创建一个共享的红帽 OpenShift 远程环境,用于构建、测试、检查、调试和部署应用。
红帽 SSO 扩展
红帽的单点登录(SSO)技术简化了创建和登录红帽帐户的过程。借助红帽 SSO 扩展,您可以注册参加红帽开发人员计划、访问红帽企业 Linux 镜像模式二进制文件等。
bootc 扩展
可引导容器是将操作系统直接嵌入容器中的磁盘镜像。bootc 扩展可帮助您区分 Podman Desktop 中的可引导容器和普通容器。
Podman Desktop 和 Docker Desktop 之间有何区别?
Docker 公司及其用户社区创建并推广了容器应用的行业标准。Docker 提供一个名为“Docker Desktop”的 GUI,可免费用于有限的用例。
尽管 Podman Desktop 和 Docker Desktop 都是用于管理容器的 GUI 工具,但它们实际上是不同的工具。
Podman 和 Docker 之间最重要的架构差异在于 Podman 无守护进程,这带来了 Kubernetes 的一个关键特性:帮助协调本地开发实践,与 Kubernetes 环境保持一致。无守护进程架构不依赖需要根特权的进程来运行容器,这让容器环境更加易于访问,同时降低了安全风险。Podman 和 Docker 的桌面版本同样存在这个差异。
由于 Podman Desktop 主要由红帽赞助和开发,因此它可以轻松地与我们的其他技术集成,例如红帽 OpenShift。
Podman 与 Docker 兼容,因此您在其中一个平台上创建的容器也可以在另一个平台上正常运行。您还可以在 Podman Desktop 中运行 Docker Desktop 扩展。
红帽能如何提供帮助
Podman Desktop 可帮助您获得容器和 Kubernetes 容器集的使用经验,并提供一个入门起点,方便您逐步了解支持容器的其他红帽技术,包括红帽企业 Linux 和红帽 OpenShift。
红帽企业 Linux 是在企业环境中运行 Linux 容器的标准。借助它,您可以轻松启动容器、管理部署并加快新应用的开发。在开放混合云环境中基于红帽企业 Linux 构建可移植的应用和容器,您的企业就能够始终保持敏捷,并随着目标发展不断转型。
红帽 OpenShift 是一个值得信赖、全面且一致的平台,可用于大规模开发、现代化和部署应用。红帽 OpenShift 在 Kubernetes 基础上构建而成,提供一整套服务,帮助您利用您选择的基础架构将应用推向市场。借助红帽 OpenShift 的可扩展性以及控制和编排功能,开发人员可以构建新的容器化应用、对其进行托管并在云端加以部署,从而轻松快速地将各种奇思妙想转变为新业务。
红帽官方博客
获取有关我们的客户、合作伙伴和社区生态系统的最新信息。