引言:为什么 Docker 安装配置如此重要?
Docker 已成为现代软件开发和运维的基础设施,但安装配置过程中的细微差异 往往导致 "别人能用我不能用" 的情况。本系列文章将系统化解决 Docker 环境搭建问题,本文作为第二篇,将聚焦于2025 年最新版 Docker 的详细安装步骤、环境配置优化及常见问题解决方案,帮助你快速搭建稳定高效的 Docker 环境。
阅读提示:本文基于 Docker 28.x 和 Docker Desktop 4.43.1 版本编写,适用于 2025 年最新环境。如果你使用旧版本 Docker,部分步骤可能需要调整。
一、系统环境深度准备
1.1 硬件与操作系统兼容性矩阵
操作系统
最低配置
推荐配置
注意事项
Windows 10/11
4GB RAM,支持 VT-x/AMD-V
16GB RAM,SSD 硬盘
仅专业版 / 企业版支持 Hyper-V
macOS 13+
4GB RAM,Apple Silicon/Intel
16GB RAM,macOS 14+
M 系列芯片需 Rosetta 2
Ubuntu 24.04
2GB RAM,x86_64 架构
8GB RAM,40GB 空闲空间
必须使用 LTS 版本
1.2 虚拟化技术验证与开启
Windows 系统:
powershell
bash
# 以管理员身份运行PowerShell
systeminfo | findstr /i "hyper-v"
# 验证WSL 2状态
wsl --status
结果判断:若显示 "Hyper-V 已安装" 且 WSL 版本≥2.1.5,则满足要求。
macOS 系统:
bash
perl
# 验证虚拟化支持
sysctl -a | grep machdep.cpu.features | grep -iE "vmx|svm"
Linux 系统:
bash
bash
# 检查CPU是否支持虚拟化
grep -E --color 'vmx|svm' /proc/cpuinfo
# 验证内核版本
uname -r # 需要≥5.4.0
1.3 前置依赖安装
Ubuntu/Debian:
bash
sql
sudo apt update && sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common \
bash-completion \
dnsutils
CentOS/RHEL:
bash
kotlin
sudo yum install -y \
yum-utils \
device-mapper-persistent-data \
lvm2 \
curl \
policycoreutils
Windows WSL 2 配置:
powershell
csharp
# 安装WSL 2
wsl --install
# 设置WSL 2为默认版本
wsl --set-default-version 2
# 安装Ubuntu发行版
wsl --install -d Ubuntu-24.04
二、分平台安装指南(2025 年最新版)
2.1 Windows 系统安装(WSL 2 后端)
详细步骤:
-
下载 Docker Desktop
-
执行安装程序
双击安装包,勾选以下选项:
-
√\] Use WSL 2 instead of Hyper-V
-
√\] Start Docker Desktop after installation
首次启动会出现 Docker 订阅协议,点击 "Accept" 接受。等待鲸鱼图标变为稳定状态(约 1-3 分钟)。
-
-
验证安装结果
打开 PowerShell 或 WSL 终端:
bash
bashdocker --version # 应显示28.x.x版本 docker compose version # 应显示v2.29.x以上 docker run hello-world # 运行测试容器
常见问题解决:
问题 1:WSL 2 更新失败
powershell
css
# 管理员身份运行
wsl --update
wsl --shutdown
问题 2:Docker 服务无法启动
powershell
bash
# 重置Docker Desktop
& "C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon
2.2 macOS 系统安装
-
下载对应版本
- Intel 芯片:Docker Desktop for Mac (x86_64)
- Apple Silicon:Docker Desktop for Mac (Apple Silicon)
-
安装步骤
- 将下载的.dmg 文件打开,拖动 Docker 图标到 Applications 文件夹
- 从启动台启动 Docker,首次启动会请求系统权限
- 等待状态栏鲸鱼图标变为稳定状态
-
验证安装
bash
cssdocker --version docker run --rm hello-world
-
M 系列芯片特殊配置
bash
css# 安装Rosetta 2(如需运行x86镜像) softwareupdate --install-rosetta --agree-to-license
2.3 Linux 系统安装(Ubuntu 24.04 示例)
官方仓库安装法(推荐):
-
卸载旧版本
bash
arduinofor pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
-
添加 Docker 官方 GPG 密钥
bash
bashcurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg
-
设置 Docker 仓库
bash
bashecho "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-
安装 Docker Engine
bash
luasudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
-
配置用户权限
bash
bash# 将当前用户添加到docker组 sudo usermod -aG docker $USER # 刷新组权限(无需注销) newgrp docker
-
设置开机自启
bash
bashsudo systemctl enable docker.service sudo systemctl enable containerd.service
三、Docker Compose 安装与使用
3.1 安装方法对比
安装方式
命令
适用场景
优势
官方插件
apt install docker-compose-plugin
系统级安装
自动更新,兼容性好
二进制包
curl -L ... > /usr/local/bin/docker-compose
特定版本需求
版本可控,离线安装
pip 安装
pip install docker-compose
Python 环境
便于开发集成
3.2 官方推荐安装(Linux)
bash
bash
# Ubuntu/Debian
sudo apt update
sudo apt install -y docker-compose-plugin
# 验证安装
docker compose version
# 应显示类似:Docker Compose version v2.29.1
3.3 手动安装指定版本
bash
bash
# 下载最新稳定版(2.29.1为例)
DOCKER_COMPOSE_VERSION=v2.29.1
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 创建软链接(可选,兼容旧命令)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
3.4 基础使用示例
创建docker-compose.yml
文件:
yaml
yaml
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
restart: unless-stopped
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: myapp
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
启动服务:
bash
bash
# 创建网站目录
mkdir -p html && echo "Docker Compose Demo" > html/index.html
# 启动所有服务
docker compose up -d
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs -f web
四、国内镜像源配置与优化
4.1 2025 年可用镜像源测试报告
镜像源
地址
测试速度
稳定性
限制
1Panel
3.2MB/s
★★★★★
无
毫秒镜像
5.8MB/s
★★★★☆
需注册
腾讯云
2.5MB/s
★★★★★
无
轩辕镜像
4.1MB/s
★★★☆☆
部分地区受限
4.2 详细配置步骤
Linux 系统:
bash
# 创建配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.1ms.run",
"https://mirror.ccs.tencentyun.com"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
# 重启服务使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker Desktop(Windows/macOS):
-
打开 Docker Desktop
-
点击右上角设置图标 → Settings
-
选择左侧 Docker Engine
-
在配置编辑器中添加:
json{ "registry-mirrors": [ "https://docker.1panel.live", "https://docker.1ms.run", "https://mirror.ccs.tencentyun.com" ] }
-
点击 "Apply & Restart",等待 Docker 重启
4.3 配置验证与速度测试
perl
# 验证镜像源配置
docker info | grep "Registry Mirrors" -A 5
# 速度测试(拉取nginx镜像)
time docker pull nginx:alpine
# 正常配置应在10秒内完成(取决于网络环境)
五、实战问题解决与优化
5.1 安装常见错误及解决方案
错误 1:GPG 密钥错误
现象 :apt update
时出现 "NO_PUBKEY 7EA0A9C3F273FCD8"
解决:
bash
# 添加缺失的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
错误 2:WSL 2 文件权限问题
现象 :容器内无法写入挂载目录
解决:
perl
# 在PowerShell中执行
wsl --shutdown
# 修改WSL挂载选项
notepad "$env:USERPROFILE\.wslconfig"
添加以下内容:
ini
[wsl2]
kernelCommandLine = vsyscall=emulate
错误 3:端口占用冲突
现象 :Bind for 0.0.0.0:80 failed: port is already allocated
解决:
bash
bash
# 查找占用端口的进程
sudo lsof -i :80
# 终止占用进程(PID为上一步结果)
sudo kill -9 <PID>
5.2 性能优化配置
资源限制配置:
json
json
{
"default-shm-size": "2g",
"oom-score-adjust": -1000,
"cpu-shares": 512,
"memory": "4g"
}
存储优化:
bash
# 启用镜像层压缩
echo '{"features":{"buildkit":true}}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker
六、基础操作与验证
6.1 核心命令速查
功能
命令
示例
查看版本
docker --version
docker --version
镜像列表
docker images
docker images -a
(显示所有)
容器状态
docker ps
docker ps -a
(显示所有容器)
拉取镜像
docker pull
docker pull nginx:1.25-alpine
运行容器
docker run
docker run -d -p 80:80 --name web nginx
停止容器
docker stop
docker stop web
删除容器
docker rm
docker rm -f web
(强制删除运行中容器)
6.2 完整验证流程
bash
# 1. 拉取测试镜像
docker pull hello-world
# 2. 运行测试容器
docker run --rm hello-world
# 3. 验证多容器协作(使用Compose)
git clone https://github.com/docker/awesome-compose.git
cd awesome-compose/nginx-php-fpm
docker compose up -d
# 4. 访问测试页面
curl http://localhost:8080
# 应显示PHP信息页面
# 5. 清理资源
docker compose down
七、总结与后续学习路径
恭喜你完成了 Docker 环境的安装与配置!通过本文,你已经掌握:
✅ 三大操作系统的 Docker 安装方法
✅ Docker Compose 的配置与使用
✅ 国内镜像源优化技巧
✅ 常见问题的诊断与解决
下一步学习建议:
- Docker 网络模型深入理解
- 镜像构建与优化(Dockerfile 编写)
- 多容器应用编排实战
- Docker Swarm 或 Kubernetes 入门
推荐资源:
- Docker 官方文档
- Docker Hub(官方镜像仓库)
- Awesome Compose(Compose 示例集合)
问题反馈:如有任何安装问题或建议,请在评论区留言。下一篇我们将深入探讨 Docker 镜像构建与优化技术!