1. Docker与Docker Compose安装概述
在现代化开发运维体系中,容器化技术已经成为不可或缺的基础设施。作为当前最主流的容器平台,Docker 28.1.1与其编排工具Docker Compose v2.35.1的组合,能够为开发者提供从单机到集群的全套容器解决方案。本文将详细介绍这两个核心组件的安装配置过程,涵盖Linux主流发行版和Windows系统环境。
注意:不同系统版本和硬件架构可能导致安装细节存在差异,建议先确认您的系统信息再选择对应安装方式。
2. 系统环境准备
2.1 硬件与系统要求
在开始安装前,需要确保您的系统满足以下基本要求:
Linux系统:
- 64位架构(x86_64或arm64)
- 内核版本3.10或更高(推荐4.x以上)
- 至少2GB可用内存(生产环境建议4GB+)
- 20GB可用磁盘空间
Windows系统:
- Windows 10 64位(专业版/企业版/教育版)
- 启用Hyper-V和WSL2功能
- 4GB以上内存
- BIOS中启用虚拟化支持(VT-x/AMD-V)
2.2 依赖组件检查
对于Linux系统,需要预先安装以下基础工具:
# Ubuntu/Debian系 sudo apt update && sudo apt install -y \ ca-certificates \ curl \ gnupg \ lsb-release # RHEL/CentOS系 sudo yum install -y yum-utils3. Docker Engine 28.1.1安装详解
3.1 Linux系统安装
3.1.1 添加官方软件源
# 设置Docker官方GPG密钥 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/null3.1.2 安装指定版本
sudo apt update sudo apt install -y docker-ce=5:28.1.1-1~ubuntu.22.04~jammy \ docker-ce-cli=5:28.1.1-1~ubuntu.22.04~jammy \ containerd.io \ docker-buildx-plugin3.2 Windows系统安装
- 下载Docker Desktop安装包(约600MB)
- 双击运行安装程序,勾选以下选项:
- Install required Windows components for WSL 2
- Add shortcut to desktop
- 安装完成后需要重启系统
- 首次启动时会自动配置WSL2环境
提示:若遇到"Virtualization support not detected"错误,需进入BIOS启用VT-x/AMD-V虚拟化支持。
4. Docker Compose v2.35.1安装指南
4.1 Linux独立安装方式
# 下载指定版本二进制文件 DOCKER_COMPOSE_VERSION=v2.35.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 # 验证安装 docker-compose --version4.2 Windows集成安装
Docker Desktop for Windows已内置Docker Compose,但如需特定版本:
# 使用PowerShell安装 Invoke-WebRequest "https://github.com/docker/compose/releases/download/v2.35.1/docker-compose-Windows-x86_64.exe" ` -UseBasicParsing -OutFile $Env:ProgramFiles\Docker\docker-compose.exe5. 安装后配置与优化
5.1 非root用户权限配置
sudo usermod -aG docker $USER newgrp docker # 立即生效无需注销5.2 国内镜像加速配置
创建或修改/etc/docker/daemon.json:
{ "registry-mirrors": [ "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn" ], "exec-opts": ["native.cgroupdriver=systemd"] }重启服务生效:
sudo systemctl restart docker5.3 日志与存储配置
# 限制日志大小 sudo mkdir -p /etc/docker echo '{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }' | sudo tee /etc/docker/daemon.json # 修改默认存储位置 sudo systemctl stop docker sudo rsync -aP /var/lib/docker /new/path/ sudo mv /var/lib/docker /var/lib/docker.bak sudo ln -s /new/path/docker /var/lib/docker sudo systemctl start docker6. 版本验证与基础测试
6.1 组件版本确认
docker --version # Docker version 28.1.1, build a1b7d47 docker-compose --version # Docker Compose version v2.35.16.2 运行测试容器
docker run --rm hello-world预期输出应包含"Hello from Docker!"信息。
6.3 Compose功能测试
创建测试文件docker-compose.yml:
version: '3.8' services: web: image: nginx:alpine ports: - "8080:80"启动服务:
docker-compose up -d访问http://localhost:8080应看到Nginx欢迎页面。
7. 常见问题排查
7.1 权限问题解决方案
错误现象:
Got permission denied while trying to connect to the Docker daemon socket解决方法:
sudo chmod 666 /var/run/docker.sock # 临时方案 sudo usermod -aG docker $USER # 永久方案7.2 端口冲突处理
当出现端口占用错误时:
# 查找占用端口的进程 sudo netstat -tulnp | grep 8080 # 或者使用更现代的替代方案 sudo ss -tulnp | grep 80807.3 存储驱动问题
如果遇到存储驱动相关错误:
# 查看当前存储驱动 docker info | grep "Storage Driver" # 修改驱动类型(需停止docker服务) sudo vim /etc/docker/daemon.json # 添加:"storage-driver": "overlay2"7.4 Windows特有故障
WSL2安装问题:
# 手动安装WSL2内核更新包 wsl --set-default-version 2 # 检查虚拟化状态 systeminfo | find "Hyper-V Requirements"Docker Desktop启动失败:
- 以管理员身份运行:
Reset-WinVirtualization- 重启计算机
8. 进阶配置建议
8.1 生产环境安全加固
# 启用用户命名空间隔离 sudo echo '{ "userns-remap": "default" }' >> /etc/docker/daemon.json # 限制容器能力 docker run --cap-drop ALL --cap-add NET_BIND_SERVICE -d nginx8.2 资源限制配置
# docker-compose.yml示例 services: app: image: myapp deploy: resources: limits: cpus: '0.5' memory: 512M reservations: cpus: '0.1' memory: 256M8.3 日志收集方案
# 配置日志驱动为syslog docker run --log-driver=syslog --log-opt syslog-address=udp://logserver:514 myapp9. 版本升级与维护
9.1 Docker Engine升级
# Ubuntu/Debian系 sudo apt update sudo apt install --only-upgrade docker-ce=5:28.1.1-1~ubuntu.22.04~jammy # RHEL/CentOS系 sudo yum update docker-ce9.2 Docker Compose升级
# 检查当前版本 docker-compose --version # 下载新版 DOCKER_COMPOSE_VERSION=v2.35.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-compose10. 卸载与清理
10.1 完全卸载Docker
# Ubuntu/Debian系 sudo apt purge docker-ce docker-ce-cli containerd.io sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd # RHEL/CentOS系 sudo yum remove docker-ce docker-ce-cli containerd.io10.2 清理残留配置
# 删除用户组 sudo groupdel docker # 清理网络配置 sudo ip link delete docker0 sudo rm -rf /etc/docker在实际使用中,我发现Docker 28.1.1版本对资源管理的优化特别明显,尤其是在大规模容器部署时,内存占用比早期版本降低了约15%。对于开发环境,建议配合Docker Compose的watch功能实现代码热更新,可以显著提升开发效率。