一、CentOS系统Docker标准化安装流程
1.1 系统环境准备
在CentOS 7/8系统上安装Docker前,需确保系统满足以下条件:
- 64位架构
- 内核版本≥3.10(通过
uname -r验证) - 已安装基础依赖包(yum-utils、device-mapper-persistent-data、lvm2)
# 安装基础依赖sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1.2 官方仓库配置
推荐使用Docker官方提供的yum仓库,确保获取最新稳定版本:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.3 安装与启动
安装最新稳定版Docker CE:
sudo yum install docker-ce docker-ce-cli containerd.iosudo systemctl enable dockersudo systemctl start docker
验证安装:
sudo docker run hello-world# 输出应包含"Hello from Docker!"字样
二、国内镜像加速配置方案
2.1 主流镜像源对比
| 镜像源 | 地址 | 延迟(ms) | 稳定性 |
|---|---|---|---|
| 阿里云 | https:// |
15-30 | ★★★★★ |
| 腾讯云 | https://mirror.ccs.tencentyun.com | 20-40 | ★★★★☆ |
| 中科大 | https://docker.mirrors.ustc.edu.cn | 25-45 | ★★★★ |
2.2 配置方法
编辑/etc/docker/daemon.json文件:
{"registry-mirrors": ["https://<your_mirror_url>"],"max-concurrent-downloads": 10}
应用配置:
sudo systemctl daemon-reloadsudo systemctl restart docker
验证镜像加速:
docker info | grep "Registry Mirrors" -A 5
三、代理环境配置实践
3.1 系统级代理配置
编辑/etc/systemd/system/docker.service.d/http-proxy.conf:
[Service]Environment="HTTP_PROXY=http://proxy.example.com:8080"Environment="HTTPS_PROXY=http://proxy.example.com:8080"Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
应用配置:
sudo systemctl daemon-reloadsudo systemctl restart docker
3.2 容器级代理配置
运行容器时指定代理:
docker run -e HTTP_PROXY=http://proxy.example.com:8080 \-e HTTPS_PROXY=http://proxy.example.com:8080 \alpine env
3.3 构建时代理配置
在Dockerfile中添加:
ENV HTTP_PROXY=http://proxy.example.com:8080ENV HTTPS_PROXY=http://proxy.example.com:8080
四、docker-compose部署指南
4.1 安装方式对比
| 安装方式 | 命令 | 适用场景 |
|---|---|---|
| 官方二进制包 | 推荐方式 | 生产环境 |
| pip安装 | pip install docker-compose |
Python环境 |
| 容器化部署 | 作为服务运行 | 临时测试环境 |
4.2 标准化安装流程
# 下载最新稳定版sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 添加执行权限sudo chmod +x /usr/local/bin/docker-compose# 验证安装docker-compose version
4.3 基础使用示例
创建docker-compose.yml文件:
version: '3.8'services:web:image: nginx:latestports:- "80:80"volumes:- ./html:/usr/share/nginx/htmldb:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: example
启动服务:
docker-compose up -d# 查看运行状态docker-compose ps# 停止服务docker-compose down
五、高级配置与最佳实践
5.1 安全加固建议
-
限制root用户操作:创建docker用户组
sudo groupadd dockersudo usermod -aG docker $USERnewgrp docker
-
配置TLS认证:生成证书并修改
/etc/docker/daemon.json{"tls": true,"tlscert": "/path/to/server-cert.pem","tlskey": "/path/to/server-key.pem","tlsverify": true,"tlscacert": "/path/to/ca.pem"}
5.2 性能优化方案
-
调整存储驱动:修改
/etc/docker/daemon.json{"storage-driver": "overlay2","storage-opts": ["overlay2.size=20G"]}
-
配置日志驱动:
{"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3"}}
5.3 故障排查指南
常见问题处理:
-
镜像拉取失败:
- 检查
/etc/docker/daemon.json配置 - 执行
docker system prune -a清理缓存
- 检查
-
端口冲突:
- 使用
netstat -tulnp | grep <port>查找占用进程 - 修改
docker-compose.yml中的端口映射
- 使用
-
性能下降:
- 检查
docker stats查看资源使用 - 调整容器资源限制:
resources:limits:cpus: '0.50'memory: 512M
- 检查
六、企业级部署建议
-
镜像管理:
- 搭建私有仓库(Harbor/Nexus)
- 实施镜像签名验证
-
编排升级:
- 从docker-compose向Kubernetes过渡方案
- 使用Kompose工具转换配置
-
监控体系:
- 集成Prometheus+Grafana监控
- 配置Alertmanager告警规则
-
CI/CD集成:
- Jenkins Pipeline示例:
pipeline {agent anystages {stage('Build') {steps {sh 'docker-compose build'}}stage('Deploy') {steps {sh 'docker-compose up -d'}}}}
- Jenkins Pipeline示例:
本指南系统覆盖了CentOS环境下Docker生态的核心配置,从基础安装到企业级实践形成完整知识体系。建议开发者根据实际场景选择配置方案,定期更新组件版本,并建立完善的容器管理规范。对于生产环境,建议结合Ansible等工具实现自动化配置管理,确保环境一致性。