Windows 11 Docker 教程
- Windows 11 Docker 安装与使用完全指南
-
- 1. 准备工作与环境要求
- 2. 安装 WSL 2
- 3. 下载并安装 Docker Desktop
- 4. 首次启动与配置
- 5. 运行你的第一个容器:Hello World
- 6. 核心概念与常用命令
-
- 6.1 核心概念
- 6.2 常用 Docker 命令
- 7. 实战:在容器中运行一个 Nginx Web 服务器
- 8. 使用 Dockerfile 构建自定义镜像
- 9. 使用 Docker Compose 管理多容器应用
- 10. 常见问题与故障排除
- 11. 总结
Windows 11 Docker 安装与使用完全指南
Docker 是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,从而实现快速部署和跨平台运行。对于 Windows 11 用户,尤其是开发者,掌握 Docker 能极大提升开发、测试和部署的效率。本教程将手把手教你如何在 Windows 11 上安装 Docker Desktop,并完成你的第一个容器化应用。
1. 准备工作与环境要求
在开始安装 Docker 之前,请确保你的 Windows 11 系统满足以下要求:
- 操作系统版本:Windows 11 64位
- 虚拟化支持:必须在 BIOS/UEFI 设置中开启 CPU 虚拟化技术(Intel VT-x 或 AMD-V)。
- WSL 2:Docker Desktop for Windows 依赖于 Windows Subsystem for Linux 2 (WSL 2) 作为后端。这是推荐的运行方式,性能更好,资源占用更少。
- 硬件虚拟化:在“任务管理器” -> “性能” -> “CPU” 中查看“虚拟化”是否已启用。
检查虚拟化是否开启:
如果未启用,需要重启电脑进入 BIOS/UEFI 设置(通常在开机时按 F2、F10、Del 等键),找到 Virtualization Technology (VT-x) 或 SVM 选项并启用它。
2. 安装 WSL 2
如果你的系统尚未安装 WSL 2 如下图,请按以下步骤操作。这是 Docker Desktop 运行的前提。 
方法一:使用命令行(推荐) 以管理员身份打开 PowerShell 或 Windows 终端,执行以下命令:
# 启用适用于 Linux 的 Windows 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
#
bcdedit /set hypervisorlaunchtype auto
# 重启计算机
Restart-Computer
**重启后更新 WSL,再次打开管理员 PowerShell:**
wsl —update
wsl —set-default–version 2
wsl —status
3. 下载并安装 Docker Desktop
- 在安装向导中,建议勾选“使用 WSL 2 而不是 Hyper-V”(如果你的系统支持)。
- 其余选项保持默认即可。
4. 首次启动与配置
docker –version
docker-compose –version
如果成功显示版本号,说明 Docker 和 Docker Compose 已正确安装。
5. 运行你的第一个容器:Hello World
让我们通过一个简单的命令来验证 Docker 是否工作正常。
docker run hello-world
这个命令会执行以下操作:
- Docker 客户端联系 Docker 守护进程。
- 守护进程从 Docker Hub(默认的公共镜像仓库)拉取 hello-world 镜像。
- 守护进程根据这个镜像创建一个新的容器并运行。
- 容器执行后,会打印出一段欢迎信息并退出。
如果你看到类似下面的输出,恭喜你,Docker 已经在你的 Windows 11 上成功运行了!
Hello from Docker!
This message shows that your installation appears to be working correctly.
…
6. 核心概念与常用命令
6.1 核心概念
- 镜像 (Image):一个只读的模板,包含了运行应用所需的代码、运行时、库、环境变量和配置文件。例如 nginx, mysql, python:3.9。
- 容器 (Container):镜像的运行实例。你可以创建、启动、停止、移动或删除容器。它是轻量级且可隔离的。
- 仓库 (Repository):集中存放镜像的地方。Docker Hub 是最大的公共仓库。
6.2 常用 Docker 命令
# 镜像相关
docker images # 列出本地所有镜像
docker pull [镜像名]:[标签] # 从仓库拉取镜像,如 docker pull ubuntu:20.04
docker rmi [镜像ID] # 删除本地镜像
# 容器相关
docker ps # 列出正在运行的容器
docker ps -a # 列出所有容器(包括已停止的)
docker run [选项] [镜像名] [命令] # 创建并运行一个新容器
# 常用选项:
# -d: 后台运行
# -p [主机端口]:[容器端口]: 端口映射,如 -p 8080:80
# -v [主机目录]:[容器目录]: 数据卷挂载
# –name [名称]: 为容器指定一个名字
# -it: 交互式终端,通常与 /bin/bash 结合进入容器
docker start [容器名/ID] # 启动已停止的容器
docker stop [容器名/ID] # 停止运行中的容器
docker rm [容器名/ID] # 删除已停止的容器
docker exec -it [容器名/ID] /bin/bash # 进入一个正在运行的容器
# 查看信息与日志
docker logs [容器名/ID] # 查看容器日志
docker inspect [容器名/ID] # 查看容器详细信息
7. 实战:在容器中运行一个 Nginx Web 服务器
让我们运行一个更实用的例子:一个 Nginx Web 服务器。
拉取 Nginx 镜像:
docker pull nginx:latest
运行 Nginx 容器:
docker run -d -p 8080:80 –name my-nginx nginx
- -d: 后台运行。
- -p 8080:80: 将主机的 8080 端口映射到容器的 80 端口(Nginx 默认端口)。
- –name my-nginx: 给容器起个名字。
访问测试:打开浏览器,访问 http://localhost:8080。你应该能看到 Nginx 的欢迎页面。
管理容器:
docker ps # 查看运行中的容器,确认 my-nginx 在运行
docker stop my-nginx # 停止容器
docker start my-nginx # 再次启动容器
docker rm my-nginx # 删除容器(需先停止)
8. 使用 Dockerfile 构建自定义镜像
Dockerfile 是一个文本文件,包含了一系列指令,用于自动构建 Docker 镜像。
创建一个简单的 Python 应用示例:
创建项目文件夹,例如 myapp,并在其中创建以下文件:
- app.py (Python 应用)
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello Docker from Windows 11!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
- requirements.txt (依赖文件)
flask==2.3.3
- Dockerfile (构建指令文件)
# 使用官方 Python 运行时作为父镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 将当前目录内容复制到容器的 /app 下
COPY . /app
# 安装 requirements.txt 中指定的依赖
RUN pip install –no-cache-dir -r requirements.txt
# 暴露端口 5000
EXPOSE 5000
# 定义环境变量
ENV FLASK_APP=app.py
# 容器启动时运行 app.py
CMD ["flask", "run", "–host=0.0.0.0"]
构建镜像:在 myapp 目录下打开终端,运行:
docker build -t my-python-app .
-t 参数为镜像打标签,. 表示使用当前目录的 Dockerfile。
运行自定义镜像:
docker run -d -p 5000:5000 –name my-app my-python-app
访问 http://localhost:5000,你将看到 “Hello Docker from Windows 11!”。
9. 使用 Docker Compose 管理多容器应用
Docker Compose 用于定义和运行多容器的 Docker 应用。通过一个 docker-compose.yml 文件来配置所有服务。
示例:一个包含 Web 应用和 Redis 的简单组合
在项目根目录创建 docker-compose.yml:
version: '3.8'
services:
web:
build: .
ports:
– "5000:5000"
depends_on:
– redis
redis:
image: "redis:alpine"
启动所有服务(在 docker-compose.yml 所在目录运行):
docker-compose up -d
停止并移除所有服务:
docker-compose down
10. 常见问题与故障排除
- Docker Desktop 无法启动:检查 WSL 2 是否安装正确,虚拟化是否开启。可以尝试在 PowerShell(管理员)中运行 wsl –update 和 wsl –shutdown,然后重启 Docker Desktop。
- 镜像拉取慢:配置国内镜像加速器。在 Docker Desktop 设置 -> Docker Engine 中,添加以下配置(如阿里云、中科大镜像):{
"registry-mirrors": [
"https://your-mirror.mirror.aliyuncs.com"
]
} - 端口被占用:使用 netstat -ano | findstr :端口号 查找占用端口的进程,并更改 Docker 容器的映射端口或停止冲突进程。
- 磁盘空间不足:Docker 镜像和容器会占用空间。定期使用 docker system prune -a 清理未使用的镜像、容器、网络和构建缓存(谨慎使用,会删除所有未使用的资源)。
11. 总结
通过本教程,你已经在 Windows 11 上成功搭建了 Docker 环境,并学会了运行容器、构建镜像和使用 Docker Compose 的基本操作。Docker 的强大之处在于其一致性和可移植性,它能将你的开发环境与生产环境对齐,避免“在我机器上能跑”的问题。
下一步,你可以探索:
- 学习更复杂的 Dockerfile 指令。
- 将你的应用部署到云服务器(如使用 Docker 的云服务)。
- 学习 Docker 网络和数据卷的深入用法。
- 探索 Kubernetes 进行容器编排。
祝你容器化之旅顺利!


