在WSL2的Ubuntu中安装和使用Docker/Podman
在Windows Subsystem for Linux 2(WSL2)中运行Ubuntu,并在其中使用Docker和Podman,可以大大提升开发和部署效率。以下是详细的安装和使用指南。

安装WSL2和Ubuntu
-
启用WSL和WSL2:
打开PowerShell,运行以下命令:wsl --install wsl --set-default-version 2 - 安装Ubuntu:
从Microsoft Store下载并安装Ubuntu发行版。
在WSL2中安装Docker
1. 安装Docker
在WSL2的Ubuntu中,安装Docker需要配置Docker的官方存储库,并安装Docker引擎。以下是具体步骤:
-
更新包列表并安装依赖项:
sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common -
添加Docker的官方GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg -
添加Docker的APT存储库:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -
安装Docker引擎:
sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io -
启动Docker服务:
sudo service docker start -
验证Docker安装:
sudo docker run hello-world
2. 配置Docker与WSL2集成
- 安装Docker Desktop for Windows:
下载并安装Docker Desktop。安装完成后,打开Docker Desktop并确保已启用WSL2集成。 -
配置Docker访问权限:
将当前用户添加到docker组,以避免每次运行Docker命令都需要sudo:sudo usermod -aG docker $USER然后退出并重新登录Shell会话。
在WSL2中安装Podman
Podman是一个无守护进程的容器引擎,兼容Docker命令行工具。以下是在WSL2中安装和使用Podman的步骤:
1. 安装Podman
-
更新包列表并安装依赖项:
sudo apt-get update sudo apt-get install -y software-properties-common -
添加Podman的官方存储库:
. /etc/os-release echo "deb http://deb.debian.org/debian ${VERSION_CODENAME}-backports main" | sudo tee /etc/apt/sources.list.d/backports.list sudo apt-get update -
安装Podman:
sudo apt-get -t ${VERSION_CODENAME}-backports install -y podman -
验证Podman安装:
podman --version
2. 使用Podman
Podman的命令与Docker几乎完全兼容,因此可以使用熟悉的Docker命令来管理容器。例如:
podman run hello-world
Docker与Podman的比较
| 特性 | Docker | Podman |
|---|---|---|
| 守护进程 | 需要docker守护进程 | 无守护进程 |
| 安装复杂度 | 安装步骤较多,依赖Docker Desktop | 安装步骤较少,直接使用APT安装 |
| 兼容性 | 广泛使用,生态系统丰富 | 兼容Docker CLI命令,多样化使用场景 |
| 性能 | 依赖守护进程,可能有性能开销 | 无守护进程,资源利用更高效 |
| 安全性 | 使用root权限启动容器 | 无需root权限启动,安全性更高 |
常见问题及解决方法
Docker服务无法启动:
- 确保已启动Docker Desktop,并在WSL2集成设置中启用了对应的Ubuntu发行版。
- 检查Docker Desktop的资源配置,确保分配了足够的CPU和内存资源。
Podman命令找不到镜像:
- 确保配置了正确的镜像源,可以通过
podman search命令来搜索镜像。
权限问题:
- 确保将用户添加到
docker组后,重新启动Shell会话以应用权限更改。
结论
在WSL2的Ubuntu环境中安装和使用Docker与Podman,可以利用两者各自的优势来管理容器化应用。Docker以其丰富的生态系统和广泛的应用而著称,而Podman则以其无守护进程和更高的安全性吸引了大量用户。通过本文的详细步骤,读者可以轻松在WSL2中配置和使用这两种容器工具,提高开发和部署效率。


