一个超级牛皮的容器管理工具 Container Desktop

一、介绍

Container Desktop 是一款为 Podman 设计的跨平台桌面伴侣应用程序,提供直观的图形化界面,简化容器管理。作为业界首个跨平台容器用户界面解决方案,它通过定制化连接技术解决了不同操作系统间的通信难题。在 Windows 上,它利用自定义 TCP 中继实现 WSL 与原生环境的通信;5.2.13 版本引入基于 SSH 中继的新方法,结合 Windows 命名管道,提升安全性并减少 TCP 服务暴露风险。该技术基于 gvisor-tap-vsock 改进,支持 Podman 和 Docker。尽管项目创建者坦言这是其首次开源尝试,并感受到开发挑战,但 Container Desktop 仍被视为“完成状态”,展现了其在容器管理领域的重要价值。

二、主要功能与使用

Podman Desktop 提供以下关键功能:

容器管理:创建、启动、停止和删除容器,查看日志并进入容器 shell。镜像处理:拉取、推送、构建和搜索容器镜像。Pod 管理:管理容器组(Pods),查看统一日志。Kubernetes 集成:本地部署和管理 Kubernetes 应用,生成和测试 Kubernetes YAML 配置。扩展点:开发和集成自定义扩展,增强功能。多引擎支持:同时处理多个容器引擎,如 Podman 和 Docker。

三、平台要求与兼容性

Container Desktop 支持多个主流操作系统平台,每个平台有其特定的安装要求:

平台

最低要求

推荐配置

依赖组件

Linux

Kernel 4.0+

Kernel 5.15+

Podman 4.0+, aardvark-dns, passt

Windows

Windows 10

Windows 11 22H2

WSL2, Podman-WSL

macOS

macOS 11

macOS 13+

Lima 0.8+, QEMU

在 Linux 系统上,用户需要安装 podman,建议使用 4.0 或更高版本。许多发行版通常包含的是较旧版本的 podman,因此可能需要使用第三方仓库如 Aalvistack 获取最新版本。

在 Windows 系统上,可以直接安装 podman 或者在自定义的 WSL 发行版中按照 Linux 的安装说明配置最新版本的 podman。Container Desktop 提供了一个定制的 TCP 中继,用于将 Unix 套接字从 WSL 环境传递回 Windows 原生上下文。

在 macOS 系统上,用户可以选择安装 podman 或 lima。

四、与 Docker Desktop 的比较

Container Desktop vs Podman Desktop:

功能/特性

Container Desktop

Podman Desktop

开发状态

完成状态,个人维护

活跃开发,RedHat 官方支持

首次发布

较早(先驱)

较晚

跨平台支持

Windows, macOS, Linux

Windows, macOS, Linux

支持的容器引擎

Podman, Docker

主要是 Podman,可扩展

GUI 设计

简洁实用

现代化,功能丰富

社区活跃度

较低

较高

远程管理

支持 SSH 连接

支持但配置较复杂

WSL 集成

专门优化

基本支持

资源占用

轻量级

中等

Container Desktop vs Docker Desktop:

功能/特性

Container Desktop

Docker Desktop

开源状态

完全开源

部分开源,商业使用受限

许可证要求

自由使用

商业环境需订阅

支持的容器引擎

主要是 Podman,可用 Docker

仅 Docker

资源消耗

较低

较高

Kubernetes 集成

有限支持

内置支持

企业功能

基本功能

丰富的企业级功能

安装方式

轻量级安装

需要安装虚拟机组件

安全特性

基于 Podman 的无根容器

需要特权访问

GUI 完善度

基本完善

非常完善

不同平台上的性能对比:

平台

启动时间

内存占用

CPU 占用

稳定性

Windows (WSL2)

中等

中等 (约 200MB)

低-中

良好

macOS (Lima)

较慢

较高 (约 300MB)

中等

一般

Linux 原生

快速

低 (约 150MB)

优秀

五、安装部署指南

1. Windows 平台安装

Windows 用户可以通过以下步骤安装 Container Desktop:

复制
# 首先确保已安装 WSL2 wsl --install # 在 WSL2 中安装 Podman wsl -d Ubuntu-20.04 sudo apt-get update sudo apt-get -y install podman # 下载并安装 Container Desktop # 从 GitHub releases 页面下载最新的 Windows 安装文件(.exe) # 运行安装文件完成安装1.2.3.4.5.6.7.8.9.10.11.
2. macOS 平台安装

macOS 用户可以使用以下命令安装:

复制
# 使用 Homebrew 安装 Podman brew install podman # 初始化并启动 Podman 虚拟机 podman machine init podman machine start # 下载 Container Desktop # 从 GitHub releases 页面下载最新的 macOS 安装文件(.dmg) # 打开 DMG 文件,将应用拖到 Applications 文件夹1.2.3.4.5.6.7.8.9.10.
3. Linux 平台安装

Linux 用户安装过程如下:

复制
# Debian/Ubuntu 系统安装 Podman 及依赖 sudo apt-get update sudo apt-get -y install podman aardvark-dns passt # Fedora 系统安装 Podman 及依赖 sudo dnf install podman aardvark-dns passt # 下载 Container Desktop # 从 GitHub releases 页面下载最新的 Linux 安装文件(.AppImage 或 .deb) # 对于 AppImage 文件 chmod +x Container.Desktop-*.AppImage ./Container.Desktop-*.AppImage # 对于 .deb 包 sudo dpkg -i container-desktop_*.deb1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.
4. 远程连接配置

如需配置远程主机连接,需执行以下步骤:

复制
# 在远程服务器上启用 Podman socket systemctl --user enable --now podman.socket # 在本地 ~/.ssh/config 中配置 SSH 连接 # 添加如下内容: Host remote-podman-server HostName 192.168.1.100 User username IdentityFile ~/.ssh/id_rsa1.2.3.4.5.6.7.8.9.

六、核心功能特性与使用示例

Container Desktop 提供了丰富的功能,使容器管理变得更加直观和高效。根据最新的 5.2.13 版本更新,该项目在功能上有了显著增强。

1. 基本容器管理

以下是创建和管理 Nginx 容器的示例:

复制
# 在 Container Desktop 中创建 Nginx 容器的等效命令 podman run -d --name nginx-web -p 8080:80 -v ./website:/usr/share/nginx/html nginx:alpine1.2.

通过 Container Desktop 界面,用户可以点击"Create Container",然后填写相关信息:

Image: nginx:alpineName: nginx-webPort mapping: 8080:80Volume: ./website:/usr/share/nginx/html2. 镜像管理示例

Container Desktop 提供了直观的镜像管理界面,用户可以执行以下操作:

镜像搜索与拉取:在搜索框中输入"nginx",点击搜索,然后选择需要的标签版本并点击"Pull"镜像构建:选择包含 Dockerfile 的目录,设置标签为"myapp:1.0",点击"Build"镜像推送:选择本地镜像"myapp:1.0",点击"Push"推送到配置好的注册表3. 数据卷管理

创建和管理持久化卷的示例:

复制
# 创建一个名为 data-volume 的卷 podman volume create data-volume # 使用该卷启动 MySQL 容器 podman run -d --name mysql-db -e MYSQL_ROOT_PASSWORD=password -v data-volume:/var/lib/mysql mysql:81.2.3.4.5.

在 Container Desktop 中,用户可以在 Volumes 选项卡中查看、创建和管理所有卷,并可以直接将卷挂载到新容器中。

4. 网络配置示例

创建自定义网络并连接容器:

复制
# 创建一个名为 app-network 的网络 podman network create app-network # 将容器连接到该网络 podman run -d --name api-service --network app-network api-image:latest1.2.3.4.5.

在 Container Desktop 中,用户可以图形化管理网络,创建新网络并设置容器的网络连接。

七、高级配置与实用技巧

1. 多主机管理

Container Desktop 支持管理多个 Podman 主机,包括本地和远程主机。以下是配置多主机的步骤:

在主界面点击"Connections"选择"Add Connection"输入连接名称,选择连接类型(本地/SSH)对于 SSH 连接,提供主机地址、用户名和密钥测试连接并保存

这允许用户在一个界面中管理多个环境中的容器,非常适合管理开发、测试和生产环境。

2. 构建自定义镜像

使用 Container Desktop 构建自定义镜像的最佳实践:

复制
# 示例 Dockerfile FROM alpine:latest RUN apk add --no-cache nginx COPY ./website /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]1.2.3.4.5.6.

在 Container Desktop 中,用户可以:

选择包含 Dockerfile 的目录设置镜像名称和标签添加构建参数(如需)点击"Build"开始构建过程查看实时构建日志3. 容器编排示例

Container Desktop 可以与 Podman-Compose 配合使用,管理多容器应用:

复制
# docker-compose.yml 示例 version:3 services: web: image:nginx:alpine ports: -"8080:80" volumes: -./website:/usr/share/nginx/html depends_on: -api api: build:./api ports: -"3000:3000" db: image:postgres:13 environment: POSTGRES_PASSWORD:example volumes: -db-data:/var/lib/postgresql/data volumes: db-data:1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.

在 Container Desktop 中,用户可以导入这个 compose 文件,然后一键启动整个应用栈。

八、截图

九、总结与建议

Container Desktop 是 Podman 的跨平台桌面伴侣工具,提供轻量级图形界面,简化容器管理操作。它支持跨平台开发和远程管理,适合初学者学习、开发者高效管理容器以及系统管理员确保系统安全。虽然作者推荐官方 Podman Desktop,但 Container Desktop 的特定功能和历史价值仍使其成为值得探索的选择。作为开源工具,它展示了技术创新和开源精神的实际应用,丰富了容器管理工具的生态系统,为开发者提供了更多灵活性和选择。

十、地址

https://github.com/iongion/container-desktop

THE END
本站服务器由亿华云赞助提供-企业级高防云服务器