WSL2 Ubuntu使用podman-remote进行容器管理

概述

本文主要介绍了 WSL2 发行版(例如 Ubuntu)和 Windows 如何使用统一的 podman 环境进行容器管理工作。

背景

在 WSL2 环境下,在安装 Podman Desktop 后,初始化 podman 时会自动创建一个 WSL 环境作为 podman 的运行环境。如下可以看到,除了我原来的 Ubuntu 外,podman 还自动创建了一个 podman-machine-default

>wsl -l -v
  NAME                      STATE           VERSION
* Ubuntu                    Running         2
  podman-machine-default    Running         2

podman 初始化完成后,可以在 windows 下使用 podman 命令进行容器管理:

>podman version
Client:       Podman Engine
Version:      5.5.1
API Version:  5.5.1
Go Version:   go1.24.3
Git Commit:   850db76dd78a0641eddb9ee19ee6f60d2c59bcfa
Built:        Fri Jun  6 05:49:19 2025
OS/Arch:      windows/amd64

Server:       Podman Engine
Version:      5.4.2
API Version:  5.4.2
Go Version:   go1.23.7
Git Commit:   be85287fcf4590961614ee37be65eeb315e5d9ff
Built:        Wed Apr  2 08:00:00 2025
OS/Arch:      linux/amd64

然而,在 Ubuntu 下却无法执行 podman 命令:

$ podman version
Command 'podman' not found, but can be installed with:
sudo apt install podman

虽然我们也可以在 ubuntu 上安装另一个独立的 podman 环境,但是这显然很不优雅也很不方便:

  1. 多一个 podman 运行环境占用了更多的空间
  2. 两个 podman 的镜像和容器不通用,管理起来不方便,也会使用更多的存储空间

为了解决这个问题,我们可以在 Ubuntu 上使用 podman-remote 连接到 podman-machine-default 中的运行环境(就像 windows 中 podman 命令实际做的一样)。

过程

安装 podman-remote

在 podman 的 release 页面下载 podman-remote 的 linux 安装包进行安装,这里以 podman-remote-static-linux_amd64.tar.gz 举例:

wget https://github.com/containers/podman/releases/download/v5.5.0/podman-remote-static-linux_amd64.tar.gz
tar xf podman-remote-static-linux_amd64.tar.gz
sudo install bin/podman-remote-static-linux_amd64 /usr/bin/podman
rm -rf bin/ podman-remote-static-linux_amd64.tar.gz

安装完成之后,使用以下命令验证安装结果:

$ podman --version
podman version 5.5.0

配置连接

首先,在 windows 下查看 podman 的连接方式:

>podman system connection list
Name                         URI                                                          Identity                                                       Default     ReadWrite
podman-machine-default       ssh://user@127.0.0.1:10085/run/user/1000/podman/podman.sock  C:\Users\focks\.local\share\containers\podman\machine\machine  false       true
podman-machine-default-root  ssh://root@127.0.0.1:10085/run/podman/podman.sock            C:\Users\focks\.local\share\containers\podman\machine\machine  true        true

可以看到有两个地址以及相应的认证文件,在 Ubuntu 上将其添加进去:

podman system connection add podman-machine-default-root --identity ~/.ssh/podman-machine-default --default  ssh://root@127.0.0.1:10085/run/podman/podman.sock
podman system connection add podman-machine-default --identity ~/.ssh/podman-machine-default ssh://user@127.0.0.1:10085/run/user/1000/podman/podman.sock

验证

完成上述步骤后,可以同时在 windows 和 wsl ubuntu 上管理同一个 podman。如下可以看到,两边看到的 images 列表是一样的。

windows:

C:\Users\focks>podman images
REPOSITORY                           TAG         IMAGE ID      CREATED        SIZE
docker.io/library/ubuntu             latest      bf16bdcff9c9  7 weeks ago    80.6 MB
quay.io/podman/hello                 latest      5dd467fce50b  13 months ago  787 kB

ubuntu:

focksor@focksor:~$ podman images
REPOSITORY                           TAG         IMAGE ID      CREATED        SIZE
docker.io/library/ubuntu             latest      bf16bdcff9c9  7 weeks ago    80.6 MB
quay.io/podman/hello                 latest      5dd467fce50b  13 months ago  787 kB
<think>嗯,用户之前问过关于WSL中Tab补全卡死的问题,现在又转向询问WSL2下的Ubuntu 20.04。可能需要确认用户是否已经按照之前的建议升级到了WSL2,或者他们现在想更深入了解如何在WSL2使用Ubuntu 20.04。 首先,用户可能想了解WSL2的基本信息,比如安装步骤、优势,或者常见问题。他们可能已经遇到了问题,比如性能问题,或者配置上的困难,因此需要详细指导。 考虑到用户之前的问题涉及到Tab补全卡顿,可能与WSL1和WSL2的文件系统差异有关,所以可能需要强调WSL2相对于WSL1的改进,尤其是在I/O性能方面。另外,用户可能对如何优化Ubuntu 20.04在WSL2中的使用感兴趣,比如文件系统配置、与Windows的互操作性等。 需要检查用户可能需要的具体信息,例如安装步骤、系统配置、常见问题解决,或者如何与Windows系统进行文件交互。此外,用户可能对Ubuntu 20.04在WSL2中的特定功能或兼容性有疑问,比如GPU支持、Docker集成等。 还要注意用户可能混淆了WSL1和WSL2的区别,或者不知道如何正确安装和配置Ubuntu 20.04。需要提供清晰的步骤,可能包括命令示例,确保他们可以顺利操作。同时,提醒用户注意常见陷阱,比如文件系统权限问题,或者如何备份数据。 最后,考虑到用户可能已经遇到问题,需要提供一些故障排除的方法,例如检查版本、更新系统、处理网络配置问题等。确保回答结构清晰,分步骤介绍,帮助用户逐步理解和解决问题。</think>以下是关于**WSL2 + Ubuntu 20.04**的详细介绍及使用指南: --- ### **1. WSL2Ubuntu 20.04的核心优势** | 特性 | WSL2 | WSL1 | |---------------------|-------------------------------------|--------------------------| | **内核** | 完整Linux内核(与Windows并行运行) | 模拟Linux系统调用 | | **文件系统性能** | Linux原生文件系统极快 | `/mnt/`目录访问Windows文件较慢 | | **Docker支持** | 原生支持容器(需启用`Docker Desktop WSL2后端`) | 需额外配置 | | **GPU计算** | 支持CUDA、DirectML等(需手动配置) | 不支持 | --- ### **2. 安装步骤** #### **(1) 启用WSL2** 以管理员身份打开PowerShell: ```powershell # 启用虚拟化功能 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 设置WSL2为默认版本 wsl --set-default-version 2 ``` #### **(2) 安装Ubuntu 20.04** - **方法1**:通过Microsoft Store搜索安装“Ubuntu 20.04 LTS” - **方法2**:手动下载安装包([官方链接](https://aka.ms/wslubuntu2004)) #### **(3) 初始化配置** 首次启动Ubuntu 20.04时: 1. 设置用户名和密码 2. 更新软件源: ```bash sudo apt update && sudo apt upgrade -y ``` --- ### **3. 关键配置优化** #### **(1) 文件系统交互** - **Windows访问Linux文件**:通过资源管理器输入路径`\\wsl$\Ubuntu-20.04\`(需替换为实际发行版名称) - **Linux访问Windows文件**:避免直接修改`/mnt/c/`下的文件(可能引发权限问题),建议复制到Linux原生目录再操作 #### **(2) 网络配置** - **固定IP**(可选):WSL2默认动态分配IP,若需固定IP可配置Windows端的`%USERPROFILE%\.wslconfig`: ```ini [wsl2] networkingMode=bridged ``` #### **(3) GPU加速** 启用CUDA支持: 1. 安装Windows端的NVIDIA驱动(需≥465.xx版本) 2. 在Ubuntu 20.04中安装CUDA Toolkit: ```bash wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/7fa2af80.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/ /" sudo apt update && sudo apt install -y cuda ``` --- ### **4. 常见问题解决** #### **(1) 启动失败报错`0x800701bc`** - **原因**:未安装WSL2内核更新包 - **解决**:下载并安装[WSL2 Linux内核更新包](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi) #### **(2) 系统时间不同步** - **现象**:Ubuntu时间与Windows相差8小时 - **修复命令**: ```bash sudo apt install systemd-timesyncd sudo timedatectl set-local-rtc 0 ``` #### **(3) 内存/CPU占用过高** - **限制资源使用**:在Windows中创建配置文件`%USERPROFILE%\.wslconfig`: ```ini [wsl2] memory=4GB # 限制最大内存 processors=2 # 限制CPU核心数 ``` --- ### **5. 推荐工具整合** | 工具 | 用途 | 安装命令 | |--------------------|--------------------------|-----------------------------------| | **Windows Terminal** | 多标签终端管理 | Microsoft Store搜索安装 | | **oh-my-zsh** | 增强Shell交互体验 | `sudo apt install zsh && sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | | **VS Code远程开发** | 直接编辑WSL文件 | 安装VS Code并添加插件`Remote - WSL` | --- ### **总结** - **适用场景**:开发(Python/C++)、机器学习、容器化部署(Docker/Kubernetes) - **性能提示**:将项目文件存储在Linux原生目录(如`~/projects/`),而非`/mnt/c/` - **备份建议**:定期导出系统镜像: ```powershell wsl --export Ubuntu-20.04 ubuntu20.04_backup.tar ``` 如需进一步调试,可提供以下信息: 1. 执行`wsl --list --verbose`的输出 2. `uname -a`显示的Linux内核版本 3. 具体报错截图或日志内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

focksorCr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值