一般人都會直覺地選擇 Docker Desktop 作為運行與管理 Windows 容器的工具,根據 Docker 的服務條款,擁有超過 250 名員工或年收入超過 1000 萬美元的組織需要按用戶付費訂閱 Docker Desktop 。
Podman
Podman 是由 Red Hat 所釋出的開源容器管理工具,其特點如下:
- 屬於 Daemonless 的容器引擎,沒有單點故障問題。
- 屬於 Rootless 模式,無須 Root 權限即可啟動容器。
- 操作指令與 Docker 有九成像,幾乎可無痛轉換。
- 提供類似 Docker Compose 的指令,如 Podman Compose。
- 提供類似 Docker Desktop 的管理介面,如 Podman Desktop。
- 支援使用 docker.io 作爲映像儲存庫
- Apache 開源授權,不用擔心商業授權問題。
- 支援 Kubernetes,輕鬆地將本機容器設定過渡到 Kubernetes 環境。

Podman Desktop
我們直接安裝 Podman Desktop,連結如下。
https://podman-desktop.io/downloads/windows
啟動畫面如下
首先提示我們要進行設定,點選 Set up。

不同於 Docker Desktop 安裝時會幫把 Docker 也一併安裝
Podman Desktop 則是需要自己安裝 Podman,點選 Next。

自動幫您安裝最新版本的 Podman,點選 Install 就可以了。

接著我們還需要替 Podman 配置虛擬機器,主要是為了能夠在 Windows 和 MacOS 上運行 Linux 容器。

填入虛擬機器的名稱與調整所需資源,點選 Create。

建立完成後就可以在設定的 Resource 管理虛擬機器

Container
配置好 Podman 虛擬機器後,使用指令啟動 Linux 容器。
podman pull keyurbhole/flutter_web_desk:v1.0.0
podman run -d -p 5000:5000 --name webdesk keyurbhole/flutter_web_desk:v1.0.0
啟動的容器會出現在 Containers 管理介面

在 Podman Desktop 的 Kube 標籤中查看 Kubernetes YAML
- 允許使用指令從現有 Podman 容器或 pod 產生與 Kubernetes 相容的 YAML 檔案
- 可以輕鬆地將本機容器設定過渡到 Kubernetes 環境。

Kubernetes
Podman Desktop 允許使用者在本地運行 Kubernetes 並重現接近生產環境以進行開發和實驗,您可以選擇 Kind 或 minikube 來配置本機 Kubernetes 叢集的功能。
Kind 一個使用容器來運行本地 Kubernetes 的開源工具,主要是為了測試 Kubernetes 本身而設計的。這對於開發和測試人員非常有幫助,因為您可以以輕量級方式在本地運行 Kubernetes 叢集。
回到設定的 Resources 選擇 Kind,建立 Kubernetes。

輸入名稱與類型及埠號,點選 Create。

建立完成後就可以在設定的 Resource 管理 Kubernetes

Kubernetes 其實也是存在於 Containers 管理介面

我們來把正在執行的 webdesk 容器部署至 Kubernetes

填入相關資訊並點選 Deploy。
- 您的 Pod Name,例如 webdesk-pod。
- 您的 Kubernetes 名稱,例如剛建立的 kind-cluster。
- 是否建立一個入口,以存取公開的本機連接埠,例如 localhost:9000。

會自動幫您產生 Kubernetes YAML 如下
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: "2024-01-15T09:06:41Z"
labels:
app: webdesk-pod
name: webdesk-pod
spec:
containers:
- image: docker.io/keyurbhole/flutter_web_desk:v1.0.0
name: webdesk
ports:
- containerPort: 5000
hostPort: 5000
這樣就部署成功了

在 Pods 的管理介面就可以看到部屬的服務了

在使用 Podman Desktop 建立的預設類型叢集上,可以透過 localhost:9090 存取它。

今天的分享就到這邊,感謝收看。


