如何在 Windows 使用 Podman Desktop 取代 Docker Desktop
Podman Desktop 是 Docker Desktop 的免费替代品,是本地开发使用的另一个绝佳选择。它提供了类似的功能集,同时保持完全开源,让您避免使用 Docker 产品的许可问题。在本文中,您将学习如何安装和开始使用 Podman Desktop 来运行容器并部署到 Kubernetes。如果您以前使用过 Docker Desktop,这种体验会很熟悉,但重新使用它也应该很快。
什么是 Podman 桌面?
Podman 是一个 OCI 容器引擎,您可以使用它来代替 Docker。 Podman的特点如下:
- 支持 Daemonless 的容器引擎,没有单点故障问题。
- 支持 Rootless 模式,无需 Root 权限即可启动容器。
- Podman CLI 有意与 Docker 的相似;您可以通过简单地用
podman
代替docker
来转换大多数命令,例如podman run
和podman push
。 - 提供类似 Docker Compose 的指令,如 Podman Compose。
- 提供类似 Docker Desktop 的管理界面,Podman Desktop 是 Podman 功能的官方图形界面,您可以使用 Desktop 方便地与工作站上的容器和相关资源进行交互。
- 支持使用 docker.io 作为镜像存储库
- Apache 开源授权,不用担心商业授权问题。
- 支持 Kubernetes,轻松地将本地容器设置过渡到 Kubernetes 环境。
入门
在开始使用 Podman Desktop 之前,请确保您已经安装了常规的 Podman CLI。 Desktop 需要检测 CLI 来管理您的容器。您可以在 Podman 文档中找到详细的安装说明。Podman在Windows上的使用主要依赖于Windows Subsystem for Linux(WSL),这使得在Windows环境下也能运行Linux容器。Podman为Windows提供了一个原生的命令行界面(CLI),并嵌入了一个用于启动容器的Linux系统作为Podman机器。这个机器通过podman machine
命令进行管理。在Windows上,每个Podman机器都由一个虚拟化的WSLv2发行版支持。Podman命令可以直接从Windows PowerShell(或CMD)提示符中运行,与在WSL环境中运行的podman服务进行远程通信。另外,如果你更喜欢Linux提示符和Linux工具,也可以直接从WSL实例中访问Podman。除了命令行访问外,Podman还监听Docker API客户端,支持直接使用基于Docker的工具和从您选择的语言进行编程访问。更详细内容参见:https://podmancn.pages.dev/docs/tutorials/podman-for-windows.
此外,建议使用现代的“Windows Terminal”,它提供了比标准PowerShell和CMD提示符更优越的用户体验,以及WSL提示符(如果需要)。可以通过Windows Store搜索或运行以下winget
命令来安装它:
winget install Microsoft.WindowsTerminal
安装Podman
安装Windows Podman客户端的开始步骤是下载Podman Windows安装程序。Windows安装程序是随每个Podman发行版一起构建的,可以从官方的GitHub发行页面下载。
下载完成后,只需运行EXE文件,并重新启动一个新的终端。此后,podman.exe将出现在你的PATH中,你将能够运行podman machine init
命令来创建你的第一台机器。
安装完成后,打开 PowerShell 命令行,运行:
podman -v
如果显示出正确的版本号即安装成功,继续下一步操作
在 PowerShell 命令行中运行:
podman machine start
出现类似的内容说明已经完成了 Podman 的安装,可以正常使用 podman run 等命令:
接下来,从项目网站下载最新的 Podman Desktop 版本,具体参考文档:https://podman-desktop.io/docs/installation/windows-install。
现在您可以启动 Podman Desktop。您应该会看到 Podman 已成功检测到。主屏幕还将显示系统上可用的任何其他容器环境,例如安装的Docker引擎。
探索 Podman 桌面
Podman Desktop 的界面分为五个主要部分,您可以使用左侧边栏在它们之间切换。还有一个单独的设置菜单,可在侧边栏底部访问,您可以在其中配置容器引擎、启用 HTTP 代理并提供图像注册表凭据。
运行容器
容器选项卡是您花费大部分时间的地方。它显示您的环境中存在的所有容器。要创建新容器,请按右上角的紫色“创建容器”按钮。
系统将提示您在构建 Containerfile 或 Dockerfile 或从现有映像启动容器之间进行选择:
如果选择“From Containerfile/Dockerfile”,则需要通过单击下一个屏幕上的“Containerfile path”输入来选择文件的路径。您可以使用任何现有的 Dockerfile; Containerfile 术语只是一种更通用的替代方法。在“Image Name”字段中为您的图像提供初始标签,然后按“Build”按钮构建您的镜像,很容易就可以构建多平台镜像,Platform可以勾选各个平台来构建多平台容器镜像。
构建命令的输出将显示在嵌入式终端窗口中。单击完成按钮继续。您将被带到镜像屏幕,您的新镜像将在其中显示。如果您选择不构建新镜像,则在容器创建对话框中按下“来自现有镜像”按钮后,您将进入镜像屏幕。
接下来,将鼠标悬停在任何镜像上,然后单击出现在屏幕右侧的播放按钮:
现在您可以配置新容器实例的属性。为您的容器指定一个名称,安装您需要的任何卷,并在“基本”选项卡上设置环境变量:
Advanced 选项卡允许您附加 TTY,设置容器运行的用户,并更改将应用的重启策略:
网络配置容器的网络堆栈,包括其主机名、/etc/hosts
文件条目和 DNS 配置:
最后,Security 选项卡可以让你激活特权模式(如果你知道你需要它),修改容器的内核功能,并在你期望一个不可变的环境时指定一个只读文件系统:
完成容器配置后,单击屏幕底部的紫色“启动容器”按钮运行它。它会重新显示在容器屏幕上。
管理容器
将鼠标悬停在容器上会显示可让您停止或删除它们的操作。您还可以使用左侧的复选框来选择多个容器并批量应用操作。单击最右侧的三个点按钮会显示一个包含更多选项的溢出菜单。在这里,您可以立即重启容器,或快速启动终端会话。
单击任何容器以查看其详细信息。这会产生一个选项卡式界面,您可以在其中访问容器的日志、podman inspect
输出和终端会话。
管理镜像
镜像以类似的方式管理。单击任何镜像以访问其详细信息,包括其 podman inspect
输出和图层历史记录。
单击图像屏幕右上角的“pull”按钮,将新的远程镜像拉入您的环境。系统会提示您输入要提取的图像,例如 ubuntu:latest
要在私有 registry 中使用镜像,您需要先设置身份验证凭据。按“拉取镜像”屏幕上的“管理注册表”按钮,或导航至“设置”>“添加注册表”,然后按右下角的“添加注册表”按钮。输入注册表的主机名并提供您的用户名和密码。单击登录按钮进行身份验证。
管理卷
Volumes 屏幕提供了您创建的所有持久卷的概览,包括它们的年龄和总大小:
使用 Kubernetes
Podman 集成了 Kubernetes 支持。这显示在 Podman Desktop 的 Pod 屏幕中。 Podman 中的 Pod 相当于 Kubernetes Pod,是多个容器组合在一起的集合。要部署 Pod,请单击右上角的“Play Kubernetes YAML”按钮。
Pod 仍然是在 Podman 中运行的容器。要部署到 真实 Kubernetes 集群,请展开 Pod 的三点菜单并选择“部署到 Kubernetes”操作。
在下一个屏幕上,选择是否将 hostPort
绑定替换为 Kubernetes 服务。这更安全,因为它可以防止 Pod 直接绑定到集群节点上的端口。单击“部署”将 Pod 启动到活动的 Kubernetes 集群中,如 ~.kube/config
文件所定义。您可以在设置菜单中选择不同的集群连接。
Podman Desktop 结合了在本地容器和 Kubernetes 集群之间移动的便利功能。容器详细信息屏幕上的“Kube”选项卡为您环境中的任何容器提供自动生成的 Kubernetes YAML 文件,使您无需手动编写清单即可进行部署。
安装扩展
Podman Desktop 支持大多数 Docker Desktop 扩展,因此您可以添加自定义功能。扩展作为容器镜像分发,其中包含专门准备的内容。找到要使用的扩展程序后,通过前往“设置”>“桌面扩展程序”将其添加到 Podman Desktop。
我们来安装一个Padman AI Lab,安装完成后就会出现在Installed列表中,同时你还会看到侧边栏中出现一个新图标,看起来像 Android 头部的顶部。
概括
Podman Desktop 是用于管理 Podman 容器环境的图形工具。您可以与机器上的容器、图像和卷进行交互,部署 Kubernetes 清单并监控日志,所有这些都在一个界面中完成。 Podman Desktop 还与 Docker Desktop 扩展兼容,因此您可以访问由更广泛的容器生态系统开发的其他集成。这些功能意味着 Podman Desktop 通常可以用作 Docker Desktop 的直接替代品。
欢迎大家扫描下面二维码成为我的客户,扶你上云