CentOS环境下Docker生态全流程配置指南

CentOS环境下Docker生态全流程配置指南

一、CentOS Docker基础安装与配置

1.1 系统环境准备

在CentOS 7/8系统上安装Docker前,需完成以下准备工作:

  • 确认系统版本:cat /etc/redhat-release
  • 关闭防火墙临时规则(测试环境):systemctl stop firewalld
  • 安装必要依赖:
    1. sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 官方仓库配置

推荐使用阿里云镜像加速的Docker CE仓库:

  1. sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

对于教育网用户,可替换为清华源:

  1. sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

1.3 安装与启动

执行安装命令并验证版本:

  1. sudo yum install docker-ce docker-ce-cli containerd.io
  2. sudo systemctl start docker
  3. sudo docker --version # 应显示Docker版本信息

1.4 基础配置优化

创建非root用户操作权限:

  1. sudo usermod -aG docker $USER
  2. newgrp docker # 立即生效

配置开机自启:

  1. sudo systemctl enable docker

二、国内镜像仓库配置方案

2.1 镜像源选择对比

镜像源 速度评级 稳定性 适用场景
阿里云 ★★★★★ ★★★★☆ 企业生产环境
腾讯云 ★★★★☆ ★★★★☆ 混合云环境
清华TUNA ★★★★☆ ★★★★★ 教育科研机构
中科大 ★★★☆☆ ★★★★☆ 科学计算场景

2.2 配置文件详解

编辑/etc/docker/daemon.json文件:

  1. {
  2. "registry-mirrors": [
  3. "https://<your-aliyun-id>.mirror.aliyuncs.com",
  4. "https://registry.docker-cn.com",
  5. "https://docker.mirrors.ustc.edu.cn"
  6. ],
  7. "insecure-registries": ["私服地址"],
  8. "max-concurrent-downloads": 10
  9. }

配置后执行重启:

  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker

2.3 镜像加速验证

执行拉取测试:

  1. docker pull nginx:latest
  2. docker images | grep nginx

正常情况应在10秒内完成下载。

三、代理配置深度实践

3.1 系统级代理设置

编辑/etc/profile添加:

  1. export HTTP_PROXY=http://proxy.example.com:8080
  2. export HTTPS_PROXY=http://proxy.example.com:8080
  3. export NO_PROXY=localhost,127.0.0.1,.example.com

使配置生效:

  1. source /etc/profile

3.2 Docker守护进程代理

/etc/systemd/system/docker.service.d/http-proxy.conf中配置:

  1. [Service]
  2. Environment="HTTP_PROXY=http://proxy.example.com:8080"
  3. Environment="HTTPS_PROXY=http://proxy.example.com:8080"
  4. Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

应用配置:

  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker

3.3 容器内代理配置

创建容器时传递环境变量:

  1. docker run -e HTTP_PROXY=http://proxy.example.com:8080 \
  2. -e HTTPS_PROXY=http://proxy.example.com:8080 \
  3. alpine echo "Proxy configured"

四、docker-compose高级部署

4.1 安装方式对比

安装方式 适用场景 版本控制
pip安装 Python环境 灵活
二进制包安装 生产环境 稳定
源码编译安装 定制化需求 复杂

4.2 二进制包安装流程

  1. 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
  2. sudo chmod +x /usr/local/bin/docker-compose
  3. docker-compose --version

4.3 基础使用示例

创建docker-compose.yml文件:

  1. version: '3.8'
  2. services:
  3. web:
  4. image: nginx:latest
  5. ports:
  6. - "80:80"
  7. volumes:
  8. - ./html:/usr/share/nginx/html
  9. db:
  10. image: mysql:5.7
  11. environment:
  12. MYSQL_ROOT_PASSWORD: example

执行命令:

  1. docker-compose up -d # 后台启动
  2. docker-compose ps # 查看状态
  3. docker-compose down # 停止服务

4.4 生产环境优化

  • 网络配置:
    1. networks:
    2. frontend:
    3. driver: bridge
    4. ipam:
    5. config:
    6. - subnet: 172.16.238.0/24
  • 资源限制:
    1. deploy:
    2. resources:
    3. limits:
    4. cpus: '0.5'
    5. memory: 512M

五、常见问题解决方案

5.1 镜像拉取失败处理

  1. 检查镜像名是否正确
  2. 验证代理配置:
    1. curl -v https://registry.hub.docker.com/v2/
  3. 清除Docker缓存:
    1. docker system prune -a

5.2 端口冲突解决

查找占用端口进程:

  1. sudo netstat -tulnp | grep :8080

修改docker-compose端口映射或终止冲突进程。

5.3 性能调优建议

  • 调整存储驱动:
    1. sudo vi /etc/docker/daemon.json
    2. {
    3. "storage-driver": "overlay2"
    4. }
  • 配置日志驱动:
    1. {
    2. "log-driver": "json-file",
    3. "log-opts": {
    4. "max-size": "10m",
    5. "max-file": "3"
    6. }
    7. }

六、最佳实践总结

  1. 镜像管理:建立私有仓库+公共镜像源的混合使用策略
  2. 安全配置:定期更新Docker版本,限制容器权限
  3. 监控体系:集成Prometheus+Grafana监控容器指标
  4. 备份策略:使用docker save定期备份关键镜像

通过以上配置,可在CentOS系统上构建高效稳定的Docker环境,满足从开发测试到生产部署的全流程需求。建议定期检查Docker官方文档更新,保持系统配置与最新安全实践同步。