目录
- 环境要求
- 安装前准备
- [安装 Docker Desktop](#安装 Docker Desktop)
- [配置 Docker](#配置 Docker)
- 验证安装
- [Docker Compose 使用](#Docker Compose 使用)
- 常见问题解决
- 实战示例
环境要求
系统要求
| 要求项 | Windows 10/11 专业版/企业版 | Windows 10/11 家庭版 |
|---|---|---|
| 系统版本 | Build 19041 或更高 | Build 19041 或更高 |
| 虚拟化技术 | Hyper-V 或 WSL 2 | WSL 2(必须) |
| 内存 | 至少 4GB RAM | 至少 4GB RAM |
| CPU | 支持 SLAT 的 64 位处理器 | 支持 SLAT 的 64 位处理器 |
检查系统版本
按 Win + R,输入 winver 查看系统版本:
操作系统版本需要:Windows 10 版本 2004 (Build 19041) 或更高
安装前准备
1. 启用 CPU 虚拟化
前提:检查 CPU 是否支持
在 Windows 搜索栏输入 msinfo32 打开系统信息,查看 "Hyper-V" 状态,如果支持但未启用,需要进入 BIOS。
更直接的检查是看任务管理器的性能 -> CPU 选项,看"虚拟化"是否显示已启用。

首先需要在 BIOS 中启用虚拟化技术:
- 重启电脑,进入 BIOS(通常按
F2、F10、Del或Esc) - 找到虚拟化设置(不同主板位置不同):
- Intel CPU:启用
Intel Virtualization Technology (VT-x) - AMD CPU:启用
SVM Mode
- Intel CPU:启用
- 保存并退出
验证虚拟化是否启用:
打开任务管理器 → 性能 → CPU,查看"虚拟化"状态:

2. 安装 WSL 2(推荐)
以管理员身份打开 PowerShell,执行以下命令:
powershell
# 一键安装 WSL(Windows 11 或更新的 Windows 10)
wsl --install
# 或者分步安装(旧版 Windows 10)
# 步骤1:启用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 步骤2:启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 步骤3:重启电脑
Restart-Computer
重启后,继续执行:
powershell
# 下载并安装 WSL 2 Linux 内核更新包
# 访问:https://aka.ms/wsl2kernel 下载安装
# 设置 WSL 2 为默认版本
wsl --set-default-version 2
# 安装 Linux 发行版(可选,推荐 Ubuntu)
wsl --install -d Ubuntu
3. 启用 Hyper-V(可选,仅专业版/企业版)
powershell
# 以管理员身份运行 PowerShell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
# 或者通过控制面板
# 控制面板 → 程序 → 启用或关闭 Windows 功能 → 勾选 Hyper-V
安装 Docker Desktop
1. 下载 Docker Desktop
访问 Docker 官方网站下载:
官方下载地址:https://www.docker.com/products/docker-desktop/
直接下载链接:https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe
2. 安装步骤
双击运行安装程序:
1. 运行 "Docker Desktop Installer.exe"
2. 在配置页面,确保勾选以下选项:
✅ Use WSL 2 instead of Hyper-V (recommended)
✅ Add shortcut to desktop
3. 点击 "OK" 开始安装
4. 安装完成后点击 "Close and restart" 重启电脑
3. 首次启动配置
重启后,Docker Desktop 会自动启动:
1. 等待 Docker Desktop 启动完成(系统托盘图标变为稳定状态)
2. 首次运行会显示服务条款,点击 "Accept" 接受
3. 选择使用方式:
- 个人/教育用途:选择免费版
- 商业用途:根据需要选择订阅计划
4. 可以选择跳过登录(Skip)或创建 Docker Hub 账号
配置 Docker
1. 基本设置
打开 Docker Desktop,点击右上角齿轮图标进入设置:
General(常规设置)
✅ Start Docker Desktop when you log in(开机自启动)
✅ Send usage statistics(可选,发送使用统计)
Resources(资源配置)
WSL Integration(WSL 集成):
✅ Enable integration with my default WSL distro
✅ Ubuntu(或你安装的其他发行版)
Advanced(高级设置)- 仅 Hyper-V 模式:
CPUs: 2-4(根据你的 CPU 核心数调整)
Memory: 4-8 GB(根据你的内存大小调整)
Swap: 1-2 GB
Disk image size: 60 GB 或更大
2. Docker Engine 配置
点击 "Docker Engine",可以编辑 daemon.json 配置文件:
json
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
],
"dns": ["8.8.8.8", "8.8.4.4"],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
配置说明:
| 配置项 | 说明 |
|---|---|
| registry-mirrors | 镜像加速地址,提高国内下载速度 |
| dns | DNS 服务器配置 |
| log-driver | 日志驱动 |
| log-opts | 日志大小限制,防止日志文件过大 |
点击 "Apply & Restart" 应用配置。
3. 国内镜像加速源列表
json
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://registry.docker-cn.com",
"https://docker.nju.edu.cn"
]
验证安装
1. 检查 Docker 版本
打开 PowerShell 或命令提示符:
powershell
# 查看 Docker 版本
docker --version
# 输出示例:Docker version 24.0.7, build afdd53b
# 查看详细版本信息
docker version
# 查看 Docker Compose 版本
docker compose version
# 输出示例:Docker Compose version v2.23.0-desktop.1
2. 运行测试容器
powershell
# 运行 Hello World 测试
docker run hello-world
成功输出:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
...
3. 更多验证命令
powershell
# 查看 Docker 系统信息
docker info
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
# 查看本地镜像
docker images
# 运行一个 Nginx 容器测试
docker run -d -p 8080:80 --name test-nginx nginx
# 访问 http://localhost:8080 查看 Nginx 欢迎页面
# 停止并删除测试容器
docker stop test-nginx
docker rm test-nginx
Docker Compose 使用
关于 Docker Compose
Docker Desktop 已经内置了 Docker Compose,无需单独安装。
新旧版本命令对比:
| 旧版本 (V1) | 新版本 (V2) | 说明 |
|---|---|---|
| docker-compose | docker compose | V2 是 Docker CLI 插件 |
| docker-compose up | docker compose up | 功能相同 |
| docker-compose down | docker compose down | 功能相同 |
注意:Docker Desktop 默认使用 V2 版本(docker compose),V1 版本(docker-compose)已逐渐弃用。
Docker Compose 基本命令
powershell
# 查看版本
docker compose version
# 启动服务(后台运行)
docker compose up -d
# 启动服务(前台运行,查看日志)
docker compose up
# 停止服务
docker compose down
# 停止服务并删除数据卷
docker compose down -v
# 查看服务状态
docker compose ps
# 查看服务日志
docker compose logs
# 查看特定服务日志
docker compose logs [service_name]
# 实时查看日志
docker compose logs -f
# 重新构建服务
docker compose build
# 重新构建并启动
docker compose up -d --build
# 进入容器
docker compose exec [service_name] bash
常见问题解决
问题 1:WSL 2 安装失败
错误信息:
WslRegisterDistribution failed with error: 0x80370102
解决方案:
powershell
# 1. 确保启用了虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 2. 下载并安装 WSL 2 内核更新包
# 访问:https://aka.ms/wsl2kernel
# 3. 重启电脑
# 4. 设置 WSL 2 为默认版本
wsl --set-default-version 2
问题 2:Docker Desktop 无法启动
错误信息:
Docker Desktop - WSL distro terminated abruptly
解决方案:
powershell
# 方法1:重置 WSL
wsl --shutdown
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
# 重启 Docker Desktop
# 方法2:更新 WSL
wsl --update
# 方法3:重置 Docker Desktop
# Settings → Troubleshoot → Reset to factory defaults
问题 3:镜像拉取超时
错误信息:
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled
解决方案:
配置国内镜像加速(参考上文 Docker Engine 配置)
问题 4:端口被占用
错误信息:
Bind for 0.0.0.0:80 failed: port is already allocated
解决方案:
powershell
# 查看端口占用
netstat -ano | findstr :80
# 根据 PID 结束进程
taskkill /PID <PID> /F
# 或者更换端口
docker run -d -p 8080:80 nginx
问题 5:磁盘空间不足
解决方案:
powershell
# 清理未使用的镜像、容器、网络
docker system prune
# 清理所有未使用的数据(包括未使用的镜像)
docker system prune -a
# 清理构建缓存
docker builder prune
# 查看 Docker 磁盘使用情况
docker system df
问题 6:Hyper-V 与 VirtualBox/VMware 冲突
解决方案:
powershell
# 方法1:使用 WSL 2 后端(推荐)
# Docker Desktop Settings → General → Use the WSL 2 based engine
# 方法2:禁用 Hyper-V(如需使用 VirtualBox)
bcdedit /set hypervisorlaunchtype off
# 重启电脑
# 重新启用 Hyper-V
bcdedit /set hypervisorlaunchtype auto
# 重启电脑
实战示例
示例 1:运行 MySQL 数据库
创建 docker-compose.yml 文件:
yaml
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: my-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: myapp
MYSQL_USER: myuser
MYSQL_PASSWORD: mypassword
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
- ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro
command: --default-authentication-plugin=mysql_native_password
volumes:
mysql_data:
启动服务:
powershell
docker compose up -d
示例 2:LNMP 环境(Linux + Nginx + MySQL + PHP)
创建项目目录结构:
myproject/
├── docker-compose.yml
├── nginx/
│ └── default.conf
├── php/
│ └── Dockerfile
└── www/
└── index.php
docker-compose.yml:
yaml
version: '3.8'
services:
nginx:
image: nginx:alpine
container_name: nginx
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./www:/var/www/html:ro
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- php
networks:
- lnmp-network
php:
build: ./php
container_name: php
restart: unless-stopped
volumes:
- ./www:/var/www/html
networks:
- lnmp-network
mysql:
image: mysql:8.0
container_name: mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: myapp
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
networks:
- lnmp-network
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin
restart: unless-stopped
environment:
PMA_HOST: mysql
PMA_PORT: 3306
ports:
- "8080:80"
depends_on:
- mysql
networks:
- lnmp-network
networks:
lnmp-network:
driver: bridge
volumes:
mysql_data:
nginx/default.conf:
nginx
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
php/Dockerfile:
dockerfile
FROM php:8.2-fpm-alpine
# 安装常用扩展
RUN docker-php-ext-install pdo pdo_mysql mysqli
# 安装 Redis 扩展(可选)
RUN apk add --no-cache $PHPIZE_DEPS \
&& pecl install redis \
&& docker-php-ext-enable redis
WORKDIR /var/www/html
www/index.php:
php
<?php
phpinfo();
启动服务:
powershell
cd myproject
docker compose up -d --build
访问:
- 网站:http://localhost
- phpMyAdmin:http://localhost:8080
示例 3:WordPress 博客
yaml
version: '3.8'
services:
wordpress:
image: wordpress:latest
container_name: wordpress
restart: unless-stopped
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
depends_on:
- db
db:
image: mysql:8.0
container_name: wordpress-db
restart: unless-stopped
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
MYSQL_ROOT_PASSWORD: rootpassword
volumes:
- db_data:/var/lib/mysql
volumes:
wordpress_data:
db_data:
启动:
powershell
docker compose up -d
# 访问 http://localhost:8000
常用 Docker 命令速查表
镜像管理
powershell
docker images # 列出镜像
docker pull [image] # 拉取镜像
docker rmi [image] # 删除镜像
docker build -t [name] . # 构建镜像
docker tag [image] [new_name] # 标记镜像
docker push [image] # 推送镜像
容器管理
powershell
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器
docker run [options] [image] # 创建并运行容器
docker start [container] # 启动容器
docker stop [container] # 停止容器
docker restart [container] # 重启容器
docker rm [container] # 删除容器
docker logs [container] # 查看日志
docker exec -it [container] sh # 进入容器
系统管理
powershell
docker system df # 查看磁盘使用
docker system prune # 清理系统
docker network ls # 列出网络
docker volume ls # 列出数据卷
总结
通过本教程,你已经完成了:
- ✅ 了解 Windows 上运行 Docker 的系统要求
- ✅ 安装并配置了 WSL 2
- ✅ 安装了 Docker Desktop
- ✅ 配置了国内镜像加速
- ✅ 学会了 Docker 和 Docker Compose 的基本使用
- ✅ 掌握了常见问题的解决方法
- ✅ 实践了多个实战项目
后续学习建议:
- 学习 Dockerfile 编写
- 了解 Docker 网络和数据卷
- 学习 Docker Swarm 或 Kubernetes 容器编排
- 探索 CI/CD 中的 Docker 应用
有用的资源:
- Docker 官方文档:https://docs.docker.com/
- Docker Hub:https://hub.docker.com/
- Docker Compose 文档:https://docs.docker.com/compose/