如何在 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 的直接替代品。
如何在 Windows 使用 Podman Desktop 取代 Docker Desktop的更多相关文章
- 在 Docker Desktop 中启用 K8s 服务
Overview 作为目前事实上的容器编排系统标准,K8s 无疑是现代应用的基石,很多同学入门可能直接就被卡到第一关,从哪去弄个 K8s 的环境 自己搭吧,要求的硬件资源太高,基本上搭建一个 K8s ...
- 【从零开始】Docker Desktop:听说你小子要玩我
前言 缘由 捡起遗忘的Docker知识 由于本狗近期项目紧任务重,高强度的搬砖导致摸鱼时间下降.在上线项目时,看到运维大神一系列骚操作,docker+k8s的知识如过眼云烟,忘得干净的很.所以想重新恶 ...
- 如何在Windows 10上运行Docker和Kubernetes?
如何在Windows 10上运行Docker和Kubernetes? 在Windows上学习Docker和Kubernetes,开始的时候会让你觉得无从下手.最起码安装好这些软件都不是一件容易的事情. ...
- Docker Desktop for Windows 安装步骤
Docker Desktop for Windows 安装要求 Docker Desktop for Windows需要运行Microsoft Hyper-V.如果需要,Docker Desktop ...
- (二) Windows 进行 Docker CE 安装(Docker Desktop)
参考并感谢 官方文档: https://docs.docker.com/docker-for-windows/install/ 下载地址 https://download.docker.com/win ...
- Docker Desktop for Windows Experience
Docker Desktop for Windows Experience: https://github.com/poazy/boazy-learn/blob/master/doc/Docker%2 ...
- windows下Docker Desktop安装管理
检查要求 Windows 10 企业版.专业版或教育版 (必须windows10 1903版本以上)版本号 18362.1049+ 或 18363.1049+ ,次版本#大于.1049.最好是最新版( ...
- 温故知新Docker概念及Docker Desktop For Windows v3.1.0安装
Docker 简介 什么是Docker? Docker是一个开放源代码软件项目,项目主要代码在2013年开源于GitHub.它是云服务技术上的一次创新,让应用程序布署在软件容器下的工作可以自动化进行, ...
- Windows10上开启WSL2(Windows Subsystem for Linux 2)及Docker Desktop For Windows
什么是WSL2 WSL2(Windows Subsystem for Linux 2)是适用于Linux的Windows子系统体系结构的一个新版本,它支持适用于Linux的Windows子系统在Win ...
- Docker学习笔记之在 Windows 和 Mac 中使用 Docker
0x00 概述 对于开发来说,Windows 和 macOS 是更为常见和常用的系统,所以也很有必要了解在 Windows 和 macOS 中使用 Docker 的方法.很幸运的是,Docker 的官 ...
随机推荐
- github无法push?看这篇文章就够了
参考文章: https://mp.weixin.qq.com/s/56Dp3pM0BMyH2GZMGEsmCQ
- flex布局方案
参考:https://blog.csdn.net/weixin_39717076/article/details/82586915
- AIRIOT答疑第1期 | 零开发基础也能干物联网平台项目?
当然可以! 物联网低代码平台以零门槛.部署快.灵活性高.满足二次开发等特点,成为近两年来IOT服务的生力军.项目团队即使没有研发人员,也可以像拼乐高一样快速搭建物联网平台,功能全面,满足多数业务场景下 ...
- 服务器root密码忘记,使用centos7 紧急模式修改root密码
一.实战场景 公司一台centos7服务器root密码忘记了,需要你修改root密码,找回root身份. 二.进入紧急模式修改root密码 首先重启服务器,看到这界面时选择第一项,按下e键进行编辑 2 ...
- 一文教你基于LangChain和ChatGLM3搭建本地知识库问答
本文分享自华为云社区<[云驻共创]LangChain+ChatGLM3实现本地知识库,转华为云ModelArts,实现大模型AI应用开发> ,作者:叶一一. 一.前言 本期华为云的讲师是华 ...
- 牛逼:一张900w的数据表,17s执行的SQL优化到300ms?
转载自 https://mp.weixin.qq.com/s/ru_B1aI0YrpXeSl-J01sHQ
- Leetcode-937-Reorder Log Files-(Easy)
一.题目描述 You have an array of logs. Each log is a space delimited string of words. For each log, the ...
- ch58x/ch59xADC差分采样NTC电阻获取当前温度
前言:之前的文章中也有关于使用I2C器件进行温度的采集的文章 采集温度的方式不止使用传感器,也可以使用NTC温敏电阻进行采集,此方法的外围电路较为简单切成本较低,代码也较为容易实现. 实现原理:先通过 ...
- c# .net mvc 使用百度Ueditor富文本框上传文件(图片,视频等)
使用背景: 项目中需要用的富文本框去上传视频,图片的话大部分都是可以的.相对来说,国外的富文本框很成熟.但鉴于文档是英语,这里使用了百度的富文本框. 采用的api的方式,调用接口进行上传文件.话不多说 ...
- 纯css+html+js模仿elementui组件
文件下载链接地址https://files.cnblogs.com/files/ht955/UIcomponents.zip?t=1717405975&download=true