第03章:Docker 安装部署
·
第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 Mode
3.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 --verbose
3.2.3 验证安装
# 打开 PowerShell 或 CMD
docker --version
# Docker version 27.x.x, build xxxxxxx
docker compose version
# Docker Compose version v2.x.x
# 运行测试容器
docker run hello-world
3.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 --version
docker run hello-world
3.3.3 配置镜像加速
Docker Desktop → Settings → Docker Engine → 添加:
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
3.4 Ubuntu 安装 Docker Engine
3.4.1 卸载旧版本(如果有)
# 卸载旧版本的 Docker
sudo apt-get remove docker docker-engine docker.io containerd runc
# 删除旧的依赖
sudo apt-get autoremove
3.4.2 安装 Docker Engine(官方源)
# Step 1: 更新 apt 包索引
sudo apt-get update
# Step 2: 安装依赖包
sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
# Step 3: 添加 Docker 官方 GPG 密钥
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --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" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Step 5: 安装 Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Step 6: 将当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USER
newgrp docker # 立即生效(或重新登录)
3.4.3 配置镜像加速
# 创建 Docker 配置目录(如果不存在)
sudo mkdir -p /etc/docker
# 写入配置
sudo tee /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
# 重新加载并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker
3.4.4 验证安装
# 检查 Docker 版本
docker --version
# Docker version 27.x.x, build xxxxxxx
# 检查 Docker 信息
docker info
# 运行测试容器
docker run hello-world
3.5 CentOS 安装 Docker Engine
3.5.1 卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.5.2 安装 Docker Engine
# Step 1: 安装依赖
sudo yum install -y yum-utils
# Step 2: 添加 Docker 官方软件源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Step 3: 安装 Docker Engine
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Step 4: 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# Step 5: 将当前用户加入 docker 组
sudo usermod -aG docker $USER
newgrp docker
3.5.3 验证安装
docker --version
docker run hello-world
3.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:
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Windows/macOS:
Docker Desktop → Settings → Docker Engine → 在 JSON 中添加 registry-mirrors。
3.7 Docker Compose 安装
3.7.1 内置版本(推荐)
Docker Desktop 和较新版本的 Docker Engine 已内置 docker compose(注意没有连字符):
# 检查是否已安装
docker compose version
# Docker Compose version v2.27.x
3.7.2 独立安装(如果未内置)
# 下载最新版本
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证
docker-compose --version
3.8 安装验证清单
完成安装后,运行以下命令确保一切正常:
# 1. Docker 版本
docker --version
# ✅ 应输出 Docker version 20.10+
# 2. Docker Compose 版本
docker compose version
# ✅ 应输出 Docker Compose version v2.x+
# 3. Docker 详细信息
docker info
# ✅ 应能看到 Server 版本、存储驱动、内存等信息
# ✅ 确认 Storage Driver 是 overlay2
# 4. 运行 Hello World
docker run hello-world
# ✅ 应输出 "Hello from Docker!"
# 5. 拉取一个镜像
docker pull nginx:latest
# ✅ 应能正常下载
# 6. 运行一个容器
docker run -d -p 8080:80 --name test-nginx nginx:latest
# ✅ 应能看到容器 ID
# 7. 查看运行中的容器
docker ps
# ✅ 应能看到 test-nginx 容器在运行
# 8. 测试端口映射
curl http://localhost:8080
# ✅ 应能看到 Nginx 的欢迎页面
# 9. 清理测试容器
docker stop test-nginx
docker rm test-nginx
docker rmi nginx:latest
3.9 常见安装问题
问题 1:Docker 启动失败
# 查看 Docker 日志
sudo journalctl -u docker.service --no-pager -n 50
# 常见原因及解决方案:
# 1. 端口被占用 → 修改 /etc/docker/daemon.json 中的 hosts 配置
# 2. 磁盘空间不足 → 清理磁盘或修改 data-root
# 3. Cgroup 版本不兼容 → 添加启动参数 --cgroupdriver=systemd
问题 2:permission denied
# 错误: Cannot connect to the Docker daemon
# 原因: 当前用户不在 docker 组中
sudo usermod -aG docker $USER
newgrp docker # 或重新登录
问题 3:镜像拉取超时
# 检查网络连接
curl https://registry-1.docker.io/v2/
# 配置镜像加速器(见 3.6 节)
# 如果使用代理
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /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"
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
问题 4:WSL 2 相关问题(Windows)
# 确保 WSL 2 已安装且为默认版本
wsl --set-default-version 2
# 如果 WSL 2 无法启动
wsl --update
wsl --shutdown # 关闭所有 WSL 实例后重试
3.10 卸载 Docker
Linux 卸载
# 卸载 Docker Engine
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 删除数据目录
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker
Windows 卸载
设置 → 应用 → 搜索 "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 镜像管理 —— 全面掌握镜像的增删改查
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)