第03章:Docker 安装部署
本章目标:在不同操作系统上完成 Docker 的安装、配置和验证,搭建后续学习的实验环境。
3.1 安装前的准备工作
3.1.1 系统要求
| 操作系统 | 最低版本 | 推荐版本 | 安装方式 |
|---|---|---|---|
| Windows | Windows 10 64-bit (Pro/Enterprise/Education) | Windows 11 | Docker Desktop |
| macOS | macOS 10.15 (Catalina) | macOS 14+ | Docker Desktop |
| Ubuntu | 18.04 LTS | 22.04 LTS | Docker Engine (CE) |
| CentOS | 7 | 8/Stream 9 | Docker Engine (CE) |
| Debian | 9 (Stretch) | 12 (Bookworm) | Docker Engine (CE) |
3.1.2 硬件虚拟化要求
Docker Desktop 在 Windows/macOS 上需要硬件虚拟化支持:
检查方法: 1. 任务管理器 → 性能 → CPU → 虚拟化:已启用 2. 或在 BIOS 中确认以下选项已开启: - Intel: Intel Virtualization Technology (VT-x) - AMD: AMD-V / SVM Mode3.2 Windows 安装 Docker Desktop
3.2.1 安装步骤
1. 下载 Docker Desktop 访问: https://www.docker.com/products/docker-desktop/ 下载: Docker Desktop for Windows 2. 运行安装程序 - 双击 Docker Desktop Installer.exe - 勾选 "Use WSL 2 instead of Hyper-V"(推荐) - 点击 OK 开始安装 3. 安装完成后重启电脑 4. 启动 Docker Desktop - 从开始菜单启动 - 首次启动需要等待初始化(1-3分钟) - 看到鲸鱼图标变为绿色表示启动成功3.2.2 WSL 2 后端(推荐)
Windows 上有两种虚拟化后端:
| 后端 | 说明 | 推荐度 |
|---|---|---|
| WSL 2 | 使用 Windows Subsystem for Linux 2 | ⭐⭐⭐ 推荐 |
| Hyper-V | 使用 Windows 原生虚拟化 | ⭐⭐ 传统方案 |
安装 WSL 2:
# 以管理员身份运行 PowerShell# 启用 WSL 功能wsl--install# 设置 WSL 2 为默认版本wsl--set-default-version 2# 查看 WSL 状态wsl--list--verbose3.2.3 验证安装
# 打开 PowerShell 或 CMDdocker--version# Docker version 27.x.x, build xxxxxxxdocker compose version# Docker Compose version v2.x.x# 运行测试容器docker run hello-world3.2.4 配置 Docker 镜像加速
Docker Desktop → Settings → Docker Engine → 添加:
{"registry-mirrors":["https://mirror.ccs.tencentyun.com"]}3.3 macOS 安装 Docker Desktop
3.3.1 安装步骤
1. 下载 Docker Desktop 访问: https://www.docker.com/products/docker-desktop/ 下载: Docker Desktop for Mac 注意区分芯片: - Apple Silicon (M1/M2/M3/M4): 选择 "Apple Chip" 版本 - Intel: 选择 "Intel Chip" 版本 2. 打开 .dmg 文件 将 Docker.app 拖入 Applications 文件夹 3. 首次启动 - 从 Applications 启动 Docker - 授权必要的系统权限 - 等待初始化完成(状态栏鲸鱼图标变绿)3.3.2 验证安装
# 打开终端docker--versiondockerrun hello-world3.3.3 配置镜像加速
Docker Desktop → Settings → Docker Engine → 添加:
{"registry-mirrors":["https://mirror.ccs.tencentyun.com"]}3.4 Ubuntu 安装 Docker Engine
3.4.1 卸载旧版本(如果有)
# 卸载旧版本的 Dockersudoapt-getremovedockerdocker-engine docker.io containerd runc# 删除旧的依赖sudoapt-getautoremove3.4.2 安装 Docker Engine(官方源)
# Step 1: 更新 apt 包索引sudoapt-getupdate# Step 2: 安装依赖包sudoapt-getinstall-y\ca-certificates\curl\gnupg\lsb-release# Step 3: 添加 Docker 官方 GPG 密钥sudomkdir-m0755-p/etc/apt/keyringscurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpg# Step 4: 添加 Docker 官方软件源echo\"deb [arch=$(dpkg --print-architecture)signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release-cs)stable"|sudotee/etc/apt/sources.list.d/docker.list>/dev/null# Step 5: 安装 Docker Enginesudoapt-getupdatesudoapt-getinstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# Step 6: 将当前用户加入 docker 组(免 sudo)sudousermod-aGdocker$USERnewgrpdocker# 立即生效(或重新登录)3.4.3 配置镜像加速
# 创建 Docker 配置目录(如果不存在)sudomkdir-p/etc/docker# 写入配置sudotee/etc/docker/daemon.json<<-'EOF' { "registry-mirrors": [ "https://mirror.ccs.tencentyun.com" ], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" }, "storage-driver": "overlay2" } EOF# 重新加载并重启 Dockersudosystemctl daemon-reloadsudosystemctl restartdockersudosystemctlenabledocker3.4.4 验证安装
# 检查 Docker 版本docker--version# Docker version 27.x.x, build xxxxxxx# 检查 Docker 信息dockerinfo# 运行测试容器dockerrun hello-world3.5 CentOS 安装 Docker Engine
3.5.1 卸载旧版本
sudoyum removedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine3.5.2 安装 Docker Engine
# Step 1: 安装依赖sudoyuminstall-yyum-utils# Step 2: 添加 Docker 官方软件源sudoyum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# Step 3: 安装 Docker Enginesudoyuminstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# Step 4: 启动并设置开机自启sudosystemctl startdockersudosystemctlenabledocker# Step 5: 将当前用户加入 docker 组sudousermod-aGdocker$USERnewgrpdocker3.5.3 验证安装
docker--versiondockerrun hello-world3.6 国内镜像加速配置
3.6.1 为什么需要镜像加速
Docker 默认从 Docker Hub(registry-1.docker.io)拉取镜像。由于网络原因,国内直接访问速度较慢甚至无法连接。
3.6.2 常用镜像加速器
| 加速器 | 地址 | 状态 |
|---|---|---|
| 腾讯云 | https://mirror.ccs.tencentyun.com | ✅ 可用 |
| 阿里云 | https://<your-id>.mirror.aliyuncs.com | ✅ 需注册 |
| 中国科学技术大学 | https://docker.mirrors.ustc.edu.cn | ⚠️ 不稳定 |
| 清华大学 | https://docker.mirrors.tuna.tsinghua.edu.cn | ⚠️ 不稳定 |
⚠️ 注意:镜像加速器地址可能随时变化,请以官方文档为准。
3.6.3 配置方法
Linux:
sudotee/etc/docker/daemon.json<<-'EOF' { "registry-mirrors": [ "https://mirror.ccs.tencentyun.com" ] } EOFsudosystemctl daemon-reloadsudosystemctl restartdockerWindows/macOS:
Docker Desktop → Settings → Docker Engine → 在 JSON 中添加registry-mirrors。
3.7 Docker Compose 安装
3.7.1 内置版本(推荐)
Docker Desktop 和较新版本的 Docker Engine 已内置docker compose(注意没有连字符):
# 检查是否已安装dockercompose version# Docker Compose version v2.27.x3.7.2 独立安装(如果未内置)
# 下载最新版本sudocurl-L"https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose# 赋予执行权限sudochmod+x /usr/local/bin/docker-compose# 验证docker-compose--version3.8 安装验证清单
完成安装后,运行以下命令确保一切正常:
# 1. Docker 版本docker--version# ✅ 应输出 Docker version 20.10+# 2. Docker Compose 版本dockercompose version# ✅ 应输出 Docker Compose version v2.x+# 3. Docker 详细信息dockerinfo# ✅ 应能看到 Server 版本、存储驱动、内存等信息# ✅ 确认 Storage Driver 是 overlay2# 4. 运行 Hello Worlddockerrun hello-world# ✅ 应输出 "Hello from Docker!"# 5. 拉取一个镜像dockerpull nginx:latest# ✅ 应能正常下载# 6. 运行一个容器dockerrun-d-p8080:80--nametest-nginx nginx:latest# ✅ 应能看到容器 ID# 7. 查看运行中的容器dockerps# ✅ 应能看到 test-nginx 容器在运行# 8. 测试端口映射curlhttp://localhost:8080# ✅ 应能看到 Nginx 的欢迎页面# 9. 清理测试容器dockerstop test-nginxdockerrmtest-nginxdockerrmi nginx:latest3.9 常见安装问题
问题 1:Docker 启动失败
# 查看 Docker 日志sudojournalctl-udocker.service --no-pager-n50# 常见原因及解决方案:# 1. 端口被占用 → 修改 /etc/docker/daemon.json 中的 hosts 配置# 2. 磁盘空间不足 → 清理磁盘或修改># 3. Cgroup 版本不兼容 → 添加启动参数 --cgroupdriver=systemd问题 2:permission denied
# 错误: Cannot connect to the Docker daemon# 原因: 当前用户不在 docker 组中sudousermod-aGdocker$USERnewgrpdocker# 或重新登录问题 3:镜像拉取超时
# 检查网络连接curlhttps://registry-1.docker.io/v2/# 配置镜像加速器(见 3.6 节)# 如果使用代理sudomkdir-p/etc/systemd/system/docker.service.dsudotee/etc/systemd/system/docker.service.d/proxy.conf<<EOF [Service] Environment="HTTP_PROXY=http://proxy:port" Environment="HTTPS_PROXY=http://proxy:port" Environment="NO_PROXY=localhost,127.0.0.1" EOFsudosystemctl daemon-reloadsudosystemctl restartdocker问题 4:WSL 2 相关问题(Windows)
# 确保 WSL 2 已安装且为默认版本wsl --set-default-version2# 如果 WSL 2 无法启动wsl--updatewsl--shutdown# 关闭所有 WSL 实例后重试3.10 卸载 Docker
Linux 卸载
# 卸载 Docker Enginesudoapt-getpurge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 删除数据目录sudorm-rf/var/lib/dockersudorm-rf/var/lib/containerdsudorm-rf/etc/dockerWindows 卸载
设置 → 应用 → 搜索 "Docker" → 卸载 Docker Desktop 手动删除: C:\ProgramData\Docker(可选)macOS 卸载
Applications → 拖动 Docker.app 到废纸篓 手动删除: ~/Library/Group Containers/group.com.docker(可选) 手动删除: ~/Library/Containers/com.docker.docker(可选)3.11 本章小结
| 操作系统 | 安装方式 | 备注 |
|---|---|---|
| Windows | Docker Desktop + WSL 2 | 需要 Pro/Enterprise 版 |
| macOS | Docker Desktop | 区分 Intel/Apple Silicon |
| Ubuntu | Docker Engine (CE) 官方源 | 推荐生产环境 |
| CentOS | Docker Engine (CE) 官方源 | CentOS 7/8/Stream |
3.12 课后练习
- 实操题:在你的操作系统上安装 Docker,完成验证清单中的所有检查。
- 配置题:配置镜像加速器,验证拉取速度的提升。
- 探索题:阅读
/etc/docker/daemon.json,尝试添加debug: true选项,观察日志变化。
📖 下一章:Docker 镜像管理 —— 全面掌握镜像的增删改查