在windows中使用padman

870 阅读3分钟

以下是本次会话有关“WSL安装Podman及其对Docker Compose支持”的内容,翻译并整理为中文:

一、WSL 里 Podman 的安装方式

1. 在 WSL Linux 发行版(如 Ubuntu)内部安装 Podman

  • 打开你的 WSL 终端(如 Ubuntu、Debian 等)。

  • 更新软件源并安装 Podman:

    bash
    sudo apt-get update
    sudo apt-get -y install podman
    
  • 安装完成后可用如下命令验证:

    bash
    podman --version
    podman info
    

2. 在 Windows 上安装 Podman,并通过 WSL2 后端运行

  • 确保系统已启用 WSL2。可在 PowerShell(管理员权限)下执行:

    powershell
    wsl --set-default-version 2
    
  • 若未安装 WSL,可执行:

    powershell
    wsl --install
    
  • 前往 Podman 官网或官方 GitHub 发布页下载最新版 Podman Windows 安装包(如 podman-5.0.1-setup.exe),并根据提示完成安装。

  • 用 CMD 或 PowerShell 执行以下命令初始化和启动 Podman machine(即专用的 Fedora WSL2 容器虚拟环境):

    powershell
    podman machine init
    podman machine start
    
  • 用如下命令检查安装情况:

    powershell
    podman info
    

3. 使用 Podman Desktop(可选图形界面方式)

  • Podman Desktop 为官方推荐 GUI 工具,支持自动部署 Podman machine(基于 WSL2),适合需要可视化管理的用户。

二、Podman 是否能用 Docker Compose?

可以,Podman 支持用 Compose 文件编排多容器应用,主要有以下几种实现方式:

  • podman-compose
    这是社区开发的工具,用于解析并运行 docker-compose.yml 文件,语法大体兼容,支持 rootless 模式,适合命令行用户。
    用法示例:

    bash
    podman-compose -f docker-compose.yml up
    

    注意部分高级或特殊的 Compose 特性可能不完全支持。

  • docker-compose + Podman API 兼容模式
    自 Podman 3.x 起,Podman 提供与 Docker 兼容的 REST API。步骤如下:

    1. 启动 podman 的 socket 服务:

      bash
      systemctl enable --now podman.socket
      
    2. 配置环境变量:

      bash
      export DOCKER_HOST=unix:///var/run/podman/podman.sock
      
    3. 正常使用 docker-compose 命令即可:

      bash
      docker-compose -f docker-compose.yml up
      
  • podman compose(命令行包装)
    Podman 新版本中内置了 podman compose,会自动调用系统已装的 docker-compose 或 podman-compose,提供便捷入口:

    bash
    podman compose -f compose.yaml up
    
  • Podman Desktop
    图形界面下可直接导入 Compose 文件,通过以上原理在 WSL2 容器环境中运行。

补充说明:

  • Podman Compose 方案实现与 Docker Compose 高度接近,适用绝大多数日常开发和测试场景,但 Swarm 等少数 docker 专有特性可能不被支持。
  • podman-compose 主要适配部分 Compose 语法,遇到兼容性问题可考虑转用官方 Docker Compose 客户端结合 Podman API。

三、对比表格

方案支持情况说明
podman-compose高,部分功能限制轻量,无需 daemon,适合用作开发测试
docker-compose高,通过 REST API需要配置 podman.sock,兼容度高
podman compose命令包装自动选择后端,使用体验便捷

总结:Podman 在 WSL 下安装便捷,支持通过多种方式使用 Docker Compose 文件进行多容器编排。常见需求下可直接替换 Docker Compose,唯一应注意部分高级特性兼容性与具体工具实现的细节差异。