Win11 桌面系统安装 Docker 教程

开始前你需要准备什么(依赖清单)

这套方案依赖/需要你确认的东西:

– Windows 11(建议 22H2+,越新越好)
– CPU 支持虚拟化(Intel VT-x / AMD-V),并且在 BIOS 里已开启
– Windows 功能组件(后面会一键开启):
– WSL(Windows Subsystem for Linux)
– Virtual Machine Platform(虚拟机平台)
– 一个 Linux 发行版(推荐 Ubuntu)
– Docker Desktop(后面安装)
– 可选但强烈推荐:Windows Terminal(微软商店可装,用起来舒服)

## 1. 先确认:系统版本 & 虚拟化是否开启

### 1.1 查看 Windows 版本(可跳过)

按 `Win + R`,输入 `winver` 回车,确认是 Windows 11。

### 1.2 确认“虚拟化”是否已启用(重要)

按 `Ctrl + Shift + Esc` 打开任务管理器 → “性能” → “CPU”。

– **虚拟化:已启用** ✅ 继续下一步
– **虚拟化:已禁用** ❌ 需要重启进 BIOS/UEFI 打开虚拟化

## 2. 一键安装 WSL2(PowerShell 一条命令)

### 2.1 用管理员打开 PowerShell

开始菜单搜索 **PowerShell** → 右键 → **以管理员身份运行**。

### 2.2 执行 WSL 安装命令(可一键复制)

POWERSHELL
wsl --install

它会自动:
– 开启 WSL + 虚拟机平台
– 安装默认 Linux(一般是 Ubuntu)
– 设置 WSL2 为默认

执行完如果提示你**重启**,按提示重启即可。

## 3. 重启后:初始化 Ubuntu(第一次会让你设置用户名密码)

重启后你可以从开始菜单打开 **Ubuntu**(或自动弹出来)。

第一次会让你设置:
– Linux 用户名(随便起,比如 `hlw`)
– 密码(输入时不会显示字符,这是正常的)

## 4. 检查 WSL2 是否正常

重启后,打开 PowerShell(普通权限也行),执行:

### 4.1 查看 WSL 状态

POWERSHELL
wsl --status

### 4.2 查看发行版与版本(必须是 Version 2)

POWERSHELL
wsl -l -v

你应该看到 Ubuntu 的 `VERSION` 是 **2**。

如果不是 2(比如是 1),执行下面这条切到 WSL2:

POWERSHELL
wsl --set-version Ubuntu 2

并且建议把默认版本也设为 2:

POWERSHELL
wsl --set-default-version 2

## 5. 在 Ubuntu 里更新基础依赖(推荐)

打开 Ubuntu 终端,执行:

### 5.1 更新软件索引

BASH
sudo apt update

### 5.2 安装常用工具依赖

BASH
sudo apt install -y ca-certificates curl gnupg lsb-release

## 6. 安装 Docker Desktop(推荐:winget 一键安装)

### 6.1 先确认 winget 能用

打开 PowerShell(普通权限即可):

POWERSHELL
winget -v

能输出版本号就说明 OK。

### 6.2 一键安装 Docker Desktop(可一键复制)

POWERSHELL
winget install -e --id Docker.DockerDesktop

安装过程会弹出安装向导,按默认下一步即可。

## 7. 第一次启动 Docker Desktop(关键:勾选 WSL2 后端)

安装完后,从开始菜单打开 **Docker Desktop**。

### 7.1 可能会出现的提示

– 让你同意协议:按提示点同意
– 提示需要登录 Docker 账号:**可以先跳过**(多数情况下不登录也能用基本功能)
– 提示需要重启:按提示重启

### 7.2 确认使用 WSL2 引擎(非常重要)

进入 Docker Desktop:**Settings(设置) → General(常规)**

确保下面这项是勾选状态:
– ✅ **Use the WSL 2 based engine**

如果没勾选,勾上后 Docker Desktop 可能会重启一次。

## 8. 打开 WSL 集成(让 Ubuntu 里也能用 docker 命令)

Docker Desktop:**Settings → Resources → WSL Integration**

推荐这样设置:
– ✅ 勾选 **Enable integration with my default WSL distro**
– ✅ 在列表里把 **Ubuntu** 开关也打开(如果有)

点右上角 **Apply & Restart**(应用并重启)。

## 9. 验证安装是否成功(Windows 侧)

### 9.1 在 PowerShell 验证 Docker 版本

POWERSHELL
docker version

正常会输出 Client/Server 版本信息。

如果提示找不到 `docker` 命令:重开一个 PowerShell 窗口再试(环境变量需要刷新)。

### 9.2 跑一个 hello-world

POWERSHELL
docker run --rm hello-world

看到 `Hello from Docker!` 说明 Docker 在 Windows 侧已经完全 OK。

## 10. 验证安装是否成功(Ubuntu/WSL 侧)

打开 Ubuntu 终端:

### 10.1 看看 docker 命令是否可用

BASH
docker version

### 10.2 WSL 里跑 hello-world

BASH
docker run --rm hello-world

如果这一步也能输出 `Hello from Docker!`,说明 **Docker Desktop ↔ WSL2 集成**完成。

## 11.(推荐)装 Windows Terminal(更好用的终端)

如果你已经有了可以跳过。没有的话:
– 打开微软商店搜索 **Windows Terminal** 安装
– 之后你可以在 Terminal 里同时开 PowerShell / Ubuntu / CMD,用起来会舒服很多

## 12.(推荐)VS Code + WSL 插件(写代码最顺)

如果你要在 Ubuntu(WSL)里做开发,建议这样:

### 12.1 安装 VS Code(可一键复制)

POWERSHELL
winget install -e --id Microsoft.VisualStudioCode

### 12.2 装 Remote – WSL 插件

打开 VS Code → 扩展(Extensions)搜索并安装:
– **Remote – WSL**

### 12.3 用 WSL 打开项目

在 Ubuntu 终端进入你的项目目录,然后:

BASH
code .

首次会自动在 WSL 里装一个 VS Code Server,等它完成就行。

## 13. Docker Desktop 资源设置(避免把电脑拖慢/也避免不够用)

Docker Desktop:**Settings → Resources**

给你一个“小白稳妥默认值”(普通开发/跑小项目足够):
– CPU:2~4 核
– Memory:4~8 GB(电脑 16GB 内存就给 6~8GB 比较舒服)
– Disk:30~60GB(看你镜像和项目大小)

设置完点 **Apply & Restart**。

## 14.(国内网络强烈建议)配置镜像加速(下载镜像更快)

Docker Desktop → **Settings → Docker Engine**

在 JSON 里加入/修改 `registry-mirrors`,格式类似:

JSON
{
  "registry-mirrors": [
    "https://你的镜像加速地址"
  ]
}

然后点 **Apply & Restart**。

## 15. 小白必会:10 条最常用 Docker 命令(带解释)

### 15.1 查看 Docker 是否正常

BASH
docker version

### 15.2 拉取镜像(下载)

BASH
docker pull nginx:latest

### 15.3 查看本机已有镜像

BASH
docker images

### 15.4 运行一个容器(后台运行)

BASH
docker run -d --name mynginx -p 8080:80 nginx:latest

解释:
– `-d`:后台运行
– `–name mynginx`:容器取名
– `-p 8080:80`:把你电脑的 8080 端口映射到容器的 80 端口

然后浏览器打开:`http://localhost:8080`

### 15.5 查看正在运行的容器

BASH
docker ps

### 15.6 查看所有容器(包含已停止)

BASH
docker ps -a

### 15.7 停止容器

BASH
docker stop mynginx

### 15.8 删除容器

BASH
docker rm mynginx

### 15.9 删除镜像

BASH
docker rmi nginx:latest

### 15.10 进入容器内部(排查问题常用)

BASH
docker run -it --name ubuntutmp ubuntu:22.04 bash

退出容器:

BASH
exit

删除演示容器:

BASH
docker rm ubuntutmp

## 16.(可选)清理磁盘:一键清掉不用的镜像/容器

推荐先用温和版:

BASH
docker system prune

更狠(连无用镜像一起删):

BASH
docker system prune -a

## 17. 可选路线:不用 Docker Desktop,只在 WSL(Ubuntu) 里安装 Docker Engine(纯命令行)

### 17.1 安装 Docker Engine 所需依赖

BASH
sudo apt update
sudo apt install -y ca-certificates curl gnupg

创建 keyrings 目录:

BASH
sudo install -m 0755 -d /etc/apt/keyrings

导入 Docker 官方 GPG key:

BASH
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

添加 Docker 官方软件源:

BASH
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | 
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新索引:

BASH
sudo apt update

安装 Docker Engine 组件:

BASH
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

### 17.2 让当前用户不用 sudo 也能用 docker

BASH
sudo usermod -aG docker $USER

然后退出 Ubuntu 终端并重新打开,再验证:

BASH
docker run --rm hello-world

### 17.3 WSL 下 docker daemon 的启动说明(重点)

WSL 是否支持 `systemctl` 取决于你是否启用了 systemd。

检查 PID 1:

BASH
ps --no-headers -o comm 1

如果输出是 `systemd`,你可以:

BASH
sudo systemctl enable docker
sudo systemctl start docker

如果不是 `systemd`:建议优先回到 Docker Desktop 方案(省心)。

## 18. 常见报错排查(小白速解)

### 18.1 `docker: command not found`

– Docker Desktop 方案:检查 Docker Desktop → WSL Integration 是否打开 Ubuntu
– 纯命令行方案:按第 17 节安装 docker-ce

### 18.2 `Cannot connect to the Docker daemon`

– Docker Desktop 方案:确保 Docker Desktop 正在运行 + WSL 集成已开
– 纯命令行方案:确保 docker 服务已启动:

BASH
sudo systemctl start docker

### 18.3 端口被占用(`port is already allocated`)

换一个端口:

BASH
docker run -d --name mynginx -p 8081:80 nginx:latest

Windows 侧找占用进程:

POWERSHELL
netstat -ano | findstr :8080

### 18.4 拉镜像太慢

优先配置镜像加速(第 14 节)。

## 19. 最终检查清单(照着打勾就能一次成功)

### 19.1 环境准备

– [ ] Windows 11
– [ ] CPU 虚拟化:已启用
– [ ] WSL2 已安装:`wsl -l -v` 显示 Ubuntu Version 2

### 19.2 Docker Desktop 方案(推荐)

– [ ] 已安装 Docker Desktop
– [ ] Settings → General → 勾选 **Use the WSL 2 based engine**
– [ ] Settings → Resources → WSL Integration → 打开 Ubuntu
– [ ] PowerShell 跑通:

POWERSHELL
docker run --rm hello-world

– [ ] Ubuntu(WSL) 跑通:

BASH
docker run --rm hello-world

### 19.3(可选)体验增强

– [ ] Docker Desktop 分配资源合理(CPU/内存/磁盘)
– [ ] 配置镜像加速(如果需要)

## 结语

按本文走 **WSL2 + Docker Desktop** 这条路线,基本不会踩“服务起不来/daemon 连不上/权限乱”的坑,小白一次上手成功率最高。

 

发表评论