1. Docker安装前的系统准备
在开始安装Docker之前,我们需要确保系统满足基本要求。不同操作系统对Docker的支持程度和安装方式存在显著差异,这往往是新手最容易忽视的关键环节。
对于Windows系统,Docker Desktop需要以下条件:
- Windows 10 64位专业版/企业版/教育版(版本1903或更高)
- 启用Hyper-V和容器功能
- 至少4GB内存
- BIOS中启用虚拟化支持(VT-x/AMD-V)
提示:很多用户遇到的"Docker Desktop failed to start because virtualization support wasn't detected"错误,通常是因为BIOS中的虚拟化技术未开启。进入BIOS设置(开机时按Del/F2等键),找到Intel Virtualization Technology或AMD SVM选项并启用。
Linux系统的要求相对简单:
- 64位架构(x86_64/amd64)
- 内核版本3.10或更高(推荐4.x+)
- 能够使用sudo或root权限
macOS用户需要:
- 2010年或更新的Mac机型(Intel芯片)
- macOS 10.13或更高版本
- 至少4GB内存
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Windows系统Docker安装详解
2.1 安装包获取与基础安装
从Docker官网下载Docker Desktop for Windows安装包(当前稳定版为4.12.0)。安装过程中有几个关键选项需要注意:
- 勾选"Use WSL 2 instead of Hyper-V"(推荐):WSL2提供了更好的性能和资源利用率
- 安装完成后不要立即启动,先进行必要配置
- 如果使用企业网络,可能需要配置代理
安装完成后常见的启动问题及解决方案:
-
问题1:Docker一直显示"Starting the Docker Engine..."
- 解决方法:以管理员身份运行命令提示符,执行:
bash复制
net stop com.docker.service net start com.docker.service
- 解决方法:以管理员身份运行命令提示符,执行:
-
问题2:错误提示"Hardware assisted virtualization and data execution protection must be enabled"
- 需要同时启用BIOS虚拟化和Windows的Hyper-V功能:
powershell复制Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
- 需要同时启用BIOS虚拟化和Windows的Hyper-V功能:
2.2 WSL2后端配置(推荐方案)
WSL2作为Docker的后端比传统Hyper-V方案更高效:
powershell复制# 启用WSL功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 设置WSL2为默认版本
wsl --set-default-version 2
# 安装Linux发行版(如Ubuntu)
wsl --install -d Ubuntu
配置Docker Desktop使用WSL2:
- 打开Docker设置
- 选择"Resources" → "WSL Integration"
- 启用已安装的WSL发行版
3. Linux系统Docker安装全指南
3.1 使用官方脚本快速安装
对于大多数Linux发行版,推荐使用官方提供的便捷安装脚本:
bash复制# 下载安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
# 执行安装(需要root权限)
sudo sh get-docker.sh
# 将当前用户加入docker组(避免每次使用sudo)
sudo usermod -aG docker $USER
安装完成后验证:
bash复制docker --version # 查看版本
docker run hello-world # 测试运行
3.2 手动安装与特定版本选择
对于生产环境或需要特定版本的情况,可以手动安装:
-
卸载旧版本:
bash复制sudo apt-get remove docker docker-engine docker.io containerd runc -
设置仓库:
bash复制sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 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 -
安装Docker Engine:
bash复制sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
3.3 国内镜像加速配置
为提升拉取镜像速度,建议配置国内镜像源:
bash复制sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
EOF
sudo systemctl restart docker
4. macOS系统Docker安装要点
4.1 Intel芯片Mac安装流程
- 从Docker官网下载Docker Desktop for Mac安装包
- 拖动应用图标到Applications文件夹
- 首次启动需要授权安装辅助工具
- 在菜单栏鲸鱼图标中配置偏好设置
4.2 Apple Silicon(M1/M2)芯片注意事项
对于ARM架构的Mac:
- 需要下载专门的Apple Chip版本
- 部分x86镜像需要Rosetta 2转译
- 可通过
--platform参数指定架构:bash复制
docker run --platform linux/amd64 your-image
性能优化建议:
- 调整Docker资源分配(建议CPU≥4核,内存≥8GB)
- 启用VirtioFS文件系统(设置→Resources→File Sharing)
- 使用
docker buildx构建多平台镜像
5. 安装后验证与常见问题排查
5.1 基础功能测试
运行测试容器验证安装:
bash复制docker run -d -p 80:80 docker/getting-started
访问http://localhost应能看到Docker欢迎页面。
检查系统信息:
bash复制docker info
docker version
5.2 常见错误解决方案
问题1:权限拒绝错误"Got permission denied while trying to connect to the Docker daemon socket"
bash复制sudo usermod -aG docker $USER
newgrp docker # 立即生效而不需要重新登录
问题2:端口冲突"Bind for 0.0.0.0:80 failed: port is already allocated"
bash复制# 查找占用进程
sudo lsof -i :80
# 或停止所有容器
docker stop $(docker ps -aq)
问题3:磁盘空间不足"no space left on device"
bash复制docker system prune # 清理无用资源
docker builder prune # 清理构建缓存
5.3 服务管理命令
Linux系统服务控制:
bash复制sudo systemctl start docker # 启动
sudo systemctl stop docker # 停止
sudo systemctl restart docker # 重启
sudo systemctl enable docker # 设置开机自启
Windows服务管理:
powershell复制Start-Service com.docker.service
Stop-Service com.docker.service
6. Docker基础配置与优化
6.1 存储驱动选择
查看当前存储驱动:
bash复制docker info | grep "Storage Driver"
推荐配置:
- Linux:
overlay2(默认) - Windows:
windowsfilter - macOS:
gzip
修改存储驱动(Linux):
bash复制# 编辑配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"storage-driver": "overlay2"
}
EOF
sudo systemctl restart docker
6.2 日志与数据管理
限制容器日志大小:
json复制{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
修改默认数据目录(Linux):
bash复制sudo systemctl stop docker
sudo rsync -a /var/lib/docker /new/path
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"data-root": "/new/path/docker"
}
EOF
sudo systemctl start docker
6.3 网络与安全配置
创建自定义网络:
bash复制docker network create --driver bridge my_network
启用用户命名空间隔离:
bash复制sudo tee /etc/docker/daemon.json <<-'EOF'
{
"userns-remap": "default"
}
EOF
7. 进阶工具链安装
7.1 Docker Compose安装
Linux系统独立安装:
bash复制sudo curl -L "https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
验证安装:
bash复制docker compose version
# 或
docker-compose --version
7.2 构建工具扩展
安装buildx多平台构建工具:
bash复制docker buildx version
# 若未安装
export DOCKER_BUILDKIT=1
docker build --platform=local -o . git://github.com/docker/buildx
mkdir -p ~/.docker/cli-plugins
mv buildx ~/.docker/cli-plugins/docker-buildx
创建构建器实例:
bash复制docker buildx create --use --name multiarch-builder
docker buildx inspect --bootstrap
8. 生产环境部署建议
8.1 版本锁定与升级策略
查看可用版本(Ubuntu示例):
bash复制apt-cache madison docker-ce
安装特定版本:
bash复制sudo apt-get install docker-ce=5:20.10.12~3-0~ubuntu-focal docker-ce-cli=5:20.10.12~3-0~ubuntu-focal containerd.io
版本升级步骤:
- 备份重要容器和数据
- 查看当前版本:
docker version - 获取新版安装包
- 测试环境验证
- 生产环境滚动更新
8.2 安全加固措施
关键安全实践:
- 定期更新Docker引擎
- 使用非root用户运行容器(
--user参数) - 限制容器资源(CPU/内存)
- 扫描镜像漏洞:
bash复制
docker scan your-image - 启用内容信任:
bash复制export DOCKER_CONTENT_TRUST=1
8.3 监控与维护
基础监控命令:
bash复制docker stats # 实时资源监控
docker events # 系统事件流
日志收集建议:
bash复制docker logs -f container_name # 跟踪日志
docker inspect --format='{{.LogPath}}' container_name # 查看日志路径
定期维护任务:
bash复制# 每周执行
docker system prune -f
docker image prune -a --filter "until=168h"
docker volume prune -f
