第03章:Docker 安装部署

发布时间:2026/7/2 20:29:20
第03章:Docker 安装部署 第03章Docker 安装部署本章目标在不同操作系统上完成 Docker 的安装、配置和验证搭建后续学习的实验环境。3.1 安装前的准备工作3.1.1 系统要求操作系统最低版本推荐版本安装方式WindowsWindows 10 64-bit (Pro/Enterprise/Education)Windows 11Docker DesktopmacOSmacOS 10.15 (Catalina)macOS 14Docker DesktopUbuntu18.04 LTS22.04 LTSDocker Engine (CE)CentOS78/Stream 9Docker Engine (CE)Debian9 (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 Desktop3.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 Desktop3.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 Engine3.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 组免 sudosudousermod-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 Engine3.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 Hubregistry-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 配置方法Linuxsudotee/etc/docker/daemon.json-EOF { registry-mirrors: [ https://mirror.ccs.tencentyun.com ] } EOFsudosystemctl daemon-reloadsudosystemctl restartdockerWindows/macOSDocker 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-Lhttps://github.com/docker/compose/releases/latest/download/docker-compose-$(uname-s)-$(uname-m)-o/usr/local/bin/docker-compose# 赋予执行权限sudochmodx /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 常见安装问题问题 1Docker 启动失败# 查看 Docker 日志sudojournalctl-udocker.service --no-pager-n50# 常见原因及解决方案# 1. 端口被占用 → 修改 /etc/docker/daemon.json 中的 hosts 配置# 2. 磁盘空间不足 → 清理磁盘或修改># 3. Cgroup 版本不兼容 → 添加启动参数 --cgroupdriversystemd问题 2permission 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.confEOF [Service] EnvironmentHTTP_PROXYhttp://proxy:port EnvironmentHTTPS_PROXYhttp://proxy:port EnvironmentNO_PROXYlocalhost,127.0.0.1 EOFsudosystemctl daemon-reloadsudosystemctl restartdocker问题 4WSL 2 相关问题Windows# 确保 WSL 2 已安装且为默认版本wsl --set-default-version2# 如果 WSL 2 无法启动wsl--updatewsl--shutdown# 关闭所有 WSL 实例后重试3.10 卸载 DockerLinux 卸载# 卸载 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 本章小结操作系统安装方式备注WindowsDocker Desktop WSL 2需要 Pro/Enterprise 版macOSDocker Desktop区分 Intel/Apple SiliconUbuntuDocker Engine (CE) 官方源推荐生产环境CentOSDocker Engine (CE) 官方源CentOS 7/8/Stream3.12 课后练习实操题在你的操作系统上安装 Docker完成验证清单中的所有检查。配置题配置镜像加速器验证拉取速度的提升。探索题阅读/etc/docker/daemon.json尝试添加debug: true选项观察日志变化。 下一章Docker 镜像管理 —— 全面掌握镜像的增删改查