>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
TypeScript

Podman Desktop 如何在日常工作中替代 Docker Desktop

几年前,Docker Desktop 的付费订阅和新限制促使许多开发者开始寻找替代方案。在控制台中,Podman 工具表现出色:语法与 Docker 完全相同,而且完全不需要以 root 身份运行后台守护进程。但当你需要快速检查五个相关服务的日志、转发端口或清理旧的磁盘镜像时,在终端中不断输入长命令就变得繁琐了。

Red Hat 的图形客户端 Podman Desktop 填补了这一空白。该工具完全免费,采用 Apache 2.0 许可证发布,不仅可以与原生 Podman 引擎配合使用,还能支持其他容器环境。

Podman Desktop

应用程序的功能

本质上,这是一个本地开发环境的控制面板。应用程序可以最小化到系统托盘,显示容器引擎的当前状态,并提供对容器、pod、镜像和网络卷的快速访问。

日常工作中遇到的主要功能:

  • 管理容器和 pod。可以启动、停止和调试容器,实时查看日志,并在运行环境中直接打开终端。
  • 导出配置到 Kubernetes。如果你已经用几个容器组装了一个本地 pod,应用程序将生成一个可直接使用的 Kubernetes YAML manifest,或直接将其部署到测试集群。
  • 支持不同的引擎。除了 Podman,该工具还能与 Docker、Lima 和 Red Hat CodeReady Containers (CRC) 配合使用。
  • 配置私有镜像仓库和代理。OCI 镜像仓库的授权和企业代理服务器参数都可以在便捷的设置窗口中进行配置。

对 Pod 和 Kubernetes 的支持

Podman 的一个有用特性是 pod 的概念,它与 Kubernetes 的逻辑相近。多个容器被组合成一个共享组,并在它们之间共享网络空间和端口。

在 Podman Desktop 中,这种关系清晰可见。只需点击鼠标即可将正在运行的容器组合成一个 pod,检查共享的网络套接字,并查看资源消耗情况。

当需要将本地开发环境迁移到测试集群时,内置的转换器会准备 manifest 文件。这节省了时间:你在本地验证假设,然后将准备好的 YAML 发送给运维团队。切换 Kubernetes 上下文也只需在系统托盘菜单中点击几下即可完成。

底层实现

该项目使用 TypeScript 和 Electron 构建。在依赖管理方面,作者选择了 pnpm。在本地以开发模式运行的标准命令是:

pnpm install && pnpm watch

扩展架构设计得非常周到。应用程序通过插件支持额外工具的连接。如果基本功能不够用,你可以编写自己的模块或从目录中安装现成的解决方案。

CLI 引擎 Podman 的自动更新直接从界面进行。你不再需要通过系统包管理器来跟踪工具的发布:当新版本发布时,应用程序将一键提供更新。

如何在实际工作中使用

让我们想象一个典型的工作日。你启动一个由数据库、缓存服务和 Web 应用程序组成的本地环境。在 Podman Desktop 面板中,这三个组件显示在同一个列表中。

如果其中一个容器因错误而退出,你不需要通过 podman ps -a 找到它的标识符,然后在控制台中请求日志输出。只需在列表中点击该容器,打开日志标签页,并启用新条目的跟踪。如果需要查看文件系统内部,内置终端就在旁边。

对于大型公司的工程师来说,使用企业代理和私有镜像仓库将成为关键。授权数据集中保存,网络请求通过指定的代理发送,无需在每次 CLI 调用前不断编辑 HTTP_PROXY 变量。

谁应该尝试

如果你已经在命令行上从 Docker Desktop 切换到 Podman,那么安装图形界面是合乎逻辑的下一步。你将获得对资源的熟悉可视化控制,而不会失去速度。

对于那些仍然坚持使用付费 Docker Desktop 仅仅为了图形界面的人来说,绝对值得测试一下 Podman Desktop。该项目活跃、由社区驱动,开源许可证保证了使用条款不会突然发生变化。

相关项目