Appearance
Windows 安装 Docker
Windows 上运行 Docker 有两种方式:
- Docker Desktop(推荐):图形化界面,集成所有工具,适合开发者
- WSL 2 + Docker Engine:在 WSL 2 的 Linux 环境中直接安装,更轻量
方式一:Docker Desktop(推荐)
详细安装步骤请参考 Docker Desktop 章节。
方式二:WSL 2 + Docker Engine
如果不想安装 Docker Desktop(例如因为许可证问题),可以在 WSL 2 中直接安装 Docker Engine。
第一步:安装 WSL 2
以管理员身份打开 PowerShell,执行:
powershell
# 安装 WSL 并默认安装 Ubuntu
wsl --install
# 查看可用的 Linux 发行版
wsl --list --online
# 安装指定发行版
wsl --install -d Ubuntu-22.04
# 确认 WSL 版本为 2
wsl --set-default-version 2重启计算机后,首次打开 Ubuntu 需要设置用户名和密码。
第二步:在 WSL 2 中安装 Docker Engine
打开 WSL 2 的 Ubuntu 终端,按照 Ubuntu 安装文档 安装 Docker Engine:
bash
# 更新包索引
sudo apt-get update
sudo apt-get install -y ca-certificates curl
# 添加 Docker 仓库
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# 安装 Docker
sudo apt-get install -y \
docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin第三步:配置 WSL 2 自动启动 Docker
WSL 2 没有 systemd(部分版本有),需要手动配置:
bash
# 方法一:使用 service 命令(适用于大多数 WSL 2)
sudo service docker start
# 方法二:如果支持 systemd,使用 systemctl
sudo systemctl enable docker
sudo systemctl start docker在 ~/.bashrc 或 ~/.zshrc 中添加自动启动:
bash
# 启动 Docker(如果没有运行)
if ! service docker status > /dev/null 2>&1; then
sudo service docker start
fi第四步:免 sudo 使用 Docker
bash
sudo usermod -aG docker $USER
newgrp docker在 PowerShell / CMD 中使用 Docker
安装 Docker Desktop 后,可以直接在 Windows 的 PowerShell 或 CMD 中使用 docker 命令:
powershell
# 在 PowerShell 中验证
docker version
docker run hello-world
# 运行容器并映射端口
docker run -d -p 80:80 nginx
# 查看运行中的容器
docker ps文件路径注意事项
在 Windows 上使用 Docker 挂载文件时,路径写法有所不同:
bash
# WSL 2 中(Linux 路径)
docker run -v /home/user/data:/data nginx
# PowerShell 中(Windows 路径)
docker run -v C:\Users\user\data:/data nginx
# 使用正斜杠(推荐)
docker run -v //c/Users/user/data:/data nginx性能优化
WSL 2 内存限制
WSL 2 默认会使用大量内存,在 %UserProfile%\.wslconfig 中配置:
ini
[wsl2]
memory=4GB # 最大内存
processors=4 # CPU 核心数
swap=2GB # 交换空间修改后重启 WSL 2:
powershell
wsl --shutdown将项目文件放在 WSL 2 文件系统
将项目文件放在 WSL 2 的文件系统(/home/user/)而非 Windows 文件系统(/mnt/c/),IO 性能会大幅提升。
常见问题
错误:WSL 2 requires an update to its kernel component
下载并安装 WSL 2 内核更新包:https://aka.ms/wsl2kernel
错误:Docker Desktop requires Windows 10 version...
确认 Windows 版本满足要求,或者更新 Windows 到最新版本。
容器内无法访问网络
powershell
# 重置 WSL 2 网络
wsl --shutdown
# 重新打开 WSL 2总结
Windows 上运行 Docker 推荐使用 Docker Desktop,配合 WSL 2 后端,既有图形界面又有接近原生的性能。如果对许可证有顾虑,可以选择在 WSL 2 中直接安装 Docker Engine。