当前位置: 首页 > news >正文

Windows 11 Docker 安装与使用完全指南

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” 中查看“虚拟化”是否已启用。

检查虚拟化是否开启

  1. 按下Ctrl + Shift + Esc打开任务管理器。
  2. 切换到“性能”选项卡。
  3. 查看“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/sethypervisorlaunchtype auto# 重启计算机Restart-Computer**重启后更新 WSL,再次打开管理员 PowerShell:**wsl--update wsl--set-default-version 2 wsl--status

3. 下载并安装 Docker Desktop

  1. 访问官网:打开 Docker 官网下载页面。
  2. 选择版本:点击“Download for Windows”按钮。Docker Desktop 对个人和小型团队免费。
  3. 运行安装程序:双击下载好的Docker Desktop Installer.exe文件。
  4. 安装选项
    • 在安装向导中,建议勾选“使用 WSL 2 而不是 Hyper-V”(如果你的系统支持)。
    • 其余选项保持默认即可。
  5. 完成安装:安装完成后,点击“Close”并重启电脑(如果提示)。

4. 首次启动与配置

  1. 启动 Docker Desktop:在开始菜单中找到“Docker Desktop”并启动。首次启动需要一些时间来完成初始化。
  2. 接受服务条款:首次启动会弹出 Docker 服务条款,阅读后点击“Accept”接受。
  3. 登录账户(可选):你可以选择登录 Docker Hub 账户,以便拉取和推送镜像。也可以稍后跳过。
  4. 检查状态:启动成功后,系统托盘区会出现 Docker 鲸鱼图标。右键点击图标,选择“Dashboard”可以打开管理界面。在 Dashboard 或终端中运行以下命令验证安装:
docker--versiondocker-compose--version

如果成功显示版本号,说明 Docker 和 Docker Compose 已正确安装。

5. 运行你的第一个容器:Hello World

让我们通过一个简单的命令来验证 Docker 是否工作正常。

  1. 打开 PowerShell、命令提示符或 Windows 终端。
  2. 输入以下命令并回车:
dockerrun 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 命令

# 镜像相关dockerimages# 列出本地所有镜像dockerpull[镜像名]:[标签]# 从仓库拉取镜像,如 docker pull ubuntu:20.04dockerrmi[镜像ID]# 删除本地镜像# 容器相关dockerps# 列出正在运行的容器dockerps-a# 列出所有容器(包括已停止的)dockerrun[选项][镜像名][命令]# 创建并运行一个新容器# 常用选项:# -d: 后台运行# -p [主机端口]:[容器端口]: 端口映射,如 -p 8080:80# -v [主机目录]:[容器目录]: 数据卷挂载# --name [名称]: 为容器指定一个名字# -it: 交互式终端,通常与 /bin/bash 结合进入容器dockerstart[容器名/ID]# 启动已停止的容器dockerstop[容器名/ID]# 停止运行中的容器dockerrm[容器名/ID]# 删除已停止的容器dockerexec-it[容器名/ID]/bin/bash# 进入一个正在运行的容器# 查看信息与日志dockerlogs[容器名/ID]# 查看容器日志dockerinspect[容器名/ID]# 查看容器详细信息

7. 实战:在容器中运行一个 Nginx Web 服务器

让我们运行一个更实用的例子:一个 Nginx Web 服务器。

  1. 拉取 Nginx 镜像

    dockerpull nginx:latest
  2. 运行 Nginx 容器

    dockerrun-d-p8080:80--namemy-nginx nginx
    • -d: 后台运行。
    • -p 8080:80: 将主机的 8080 端口映射到容器的 80 端口(Nginx 默认端口)。
    • --name my-nginx: 给容器起个名字。
  3. 访问测试:打开浏览器,访问http://localhost:8080。你应该能看到 Nginx 的欢迎页面。

  4. 管理容器

    dockerps# 查看运行中的容器,确认 my-nginx 在运行dockerstop my-nginx# 停止容器dockerstart my-nginx# 再次启动容器dockerrmmy-nginx# 删除容器(需先停止)

8. 使用 Dockerfile 构建自定义镜像

Dockerfile 是一个文本文件,包含了一系列指令,用于自动构建 Docker 镜像。

创建一个简单的 Python 应用示例:

  1. 创建项目文件夹,例如myapp,并在其中创建以下文件:

    • app.py(Python 应用)
    fromflaskimportFlask app=Flask(__name__)@app.route('/')defhello():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"]
  2. 构建镜像:在myapp目录下打开终端,运行:

    dockerbuild-tmy-python-app.

    -t参数为镜像打标签,.表示使用当前目录的 Dockerfile。

  3. 运行自定义镜像

    dockerrun-d-p5000:5000--namemy-app my-python-app
  4. 访问http://localhost:5000,你将看到 “Hello Docker from Windows 11!”。

9. 使用 Docker Compose 管理多容器应用

Docker Compose 用于定义和运行多容器的 Docker 应用。通过一个docker-compose.yml文件来配置所有服务。

示例:一个包含 Web 应用和 Redis 的简单组合

  1. 在项目根目录创建docker-compose.yml

    version:'3.8'services:web:build:.ports:-"5000:5000"depends_on:-redisredis:image:"redis:alpine"
  2. 启动所有服务(在docker-compose.yml所在目录运行):

    docker-composeup-d
  3. 停止并移除所有服务:

    docker-composedown

10. 常见问题与故障排除

  • Docker Desktop 无法启动:检查 WSL 2 是否安装正确,虚拟化是否开启。可以尝试在 PowerShell(管理员)中运行wsl --updatewsl --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 进行容器编排。

祝你容器化之旅顺利!

http://www.jsqmd.com/news/1324109/

相关文章:

  • 腾讯混元Hy3开源:MoE大模型从入门到部署实战指南
  • 02-Reactor模式与Netty线程模型
  • 2026年8月怀化市移动1000M单宽带我的真实踩坑经历 - 找卡家园
  • 2026年正规SEO公司怎么选:七大避坑维度+真实案例复盘+KPI对赌合同指南|解析
  • 魔兽争霸III现代化体验升级:WarcraftHelper全面功能指南
  • 从Text-to-SQL到Data Agent:企业数据智能为什么只能这样演进?
  • 不需要公网 IP,星空组网让 NAS 远程访问变得更简单:一次真实体验分享
  • 2026年8月长沙市移动300M单宽带办理攻略 - 找卡家园
  • 收藏!小白程序员必看:FDE如何让AI从Demo落地到生产环境?
  • Windows系统盘深度解析:C盘文件夹功能与空间管理实战指南
  • Unity GLB模型导入插件选择与性能优化全攻略
  • MySQL数据比对实战:从SQL到哈希,高效定位表差异
  • AI桌面助手选型指南:从OpenClaw框架到一体化客户端的深度解析
  • 爱因斯坦求和约定einsum:从物理符号到张量运算的编程利器
  • 2026年8月怀化市移动500M单宽带实测对比宽带怎么选? - 找卡家园
  • Docker启动失败排查指南:从日志分析到系统修复
  • 背包算法详解:从动态规划核心到实战应用
  • 2026年8月台州市电信1000M单宽带我的真实避坑攻略 - 找卡家园
  • Vue项目在信创浏览器中的兼容性解决方案与实战指南
  • Android TextView深度解析:从基础属性到性能优化的完整指南
  • 上下文管理
  • 山海万灵 HarmonyOS 文化知识实战(04):探索证据板的页面状态组织
  • 2026年正规SEO公司怎么选:七大避坑维度+真实案例复盘+KPI对赌合同指南|评测
  • 智能搬运机器人系统设计:从机械架构到算法闭环的工程实践
  • 灰度管理实战技巧
  • Unity WebGL中文输入解决方案:JavaScript桥接实现IME支持
  • 2026年8月怀化市移动300M单宽带办理与避坑全攻略 - 找卡家园
  • 2026精选:九龙坡区专业的家电清洗保养服务如何选 - 装修教育财税推荐2026
  • 滑动窗口算法解决LeetCode 1004最长连续1问题
  • 生物素-石胆酸Biotin-Lithocholic Acid, Biotin-LCA的结构与设计原理