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

一、CentOS系统Docker标准化安装流程

1.1 系统环境准备

在CentOS 7/8系统上安装Docker前,需确保系统满足以下条件:

  • 64位架构
  • 内核版本≥3.10(通过uname -r验证)
  • 已安装基础依赖包(yum-utils、device-mapper-persistent-data、lvm2)
  1. # 安装基础依赖
  2. sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 官方仓库配置

推荐使用Docker官方提供的yum仓库,确保获取最新稳定版本:

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

1.3 安装与启动

安装最新稳定版Docker CE:

  1. sudo yum install docker-ce docker-ce-cli containerd.io
  2. sudo systemctl enable docker
  3. sudo systemctl start docker

验证安装:

  1. sudo docker run hello-world
  2. # 输出应包含"Hello from Docker!"字样

二、国内镜像加速配置方案

2.1 主流镜像源对比

镜像源 地址 延迟(ms) 稳定性
阿里云 https://.mirror.aliyuncs.com 15-30 ★★★★★
腾讯云 https://mirror.ccs.tencentyun.com 20-40 ★★★★☆
中科大 https://docker.mirrors.ustc.edu.cn 25-45 ★★★★

2.2 配置方法

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

  1. {
  2. "registry-mirrors": [
  3. "https://<your_mirror_url>"
  4. ],
  5. "max-concurrent-downloads": 10
  6. }

应用配置:

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

验证镜像加速:

  1. docker info | grep "Registry Mirrors" -A 5

三、代理环境配置实践

3.1 系统级代理配置

编辑/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.2 容器级代理配置

运行容器时指定代理:

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

3.3 构建时代理配置

在Dockerfile中添加:

  1. ENV HTTP_PROXY=http://proxy.example.com:8080
  2. ENV HTTPS_PROXY=http://proxy.example.com:8080

四、docker-compose部署指南

4.1 安装方式对比

安装方式 命令 适用场景
官方二进制包 推荐方式 生产环境
pip安装 pip install docker-compose Python环境
容器化部署 作为服务运行 临时测试环境

4.2 标准化安装流程

  1. # 下载最新稳定版
  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
  3. # 添加执行权限
  4. sudo chmod +x /usr/local/bin/docker-compose
  5. # 验证安装
  6. 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. # 查看运行状态
  3. docker-compose ps
  4. # 停止服务
  5. docker-compose down

五、高级配置与最佳实践

5.1 安全加固建议

  • 限制root用户操作:创建docker用户组

    1. sudo groupadd docker
    2. sudo usermod -aG docker $USER
    3. newgrp docker
  • 配置TLS认证:生成证书并修改/etc/docker/daemon.json

    1. {
    2. "tls": true,
    3. "tlscert": "/path/to/server-cert.pem",
    4. "tlskey": "/path/to/server-key.pem",
    5. "tlsverify": true,
    6. "tlscacert": "/path/to/ca.pem"
    7. }

5.2 性能优化方案

  • 调整存储驱动:修改/etc/docker/daemon.json

    1. {
    2. "storage-driver": "overlay2",
    3. "storage-opts": [
    4. "overlay2.size=20G"
    5. ]
    6. }
  • 配置日志驱动:

    1. {
    2. "log-driver": "json-file",
    3. "log-opts": {
    4. "max-size": "10m",
    5. "max-file": "3"
    6. }
    7. }

5.3 故障排查指南

常见问题处理:

  1. 镜像拉取失败

    • 检查/etc/docker/daemon.json配置
    • 执行docker system prune -a清理缓存
  2. 端口冲突

    • 使用netstat -tulnp | grep <port>查找占用进程
    • 修改docker-compose.yml中的端口映射
  3. 性能下降

    • 检查docker stats查看资源使用
    • 调整容器资源限制:
      1. resources:
      2. limits:
      3. cpus: '0.50'
      4. memory: 512M

六、企业级部署建议

  1. 镜像管理

    • 搭建私有仓库(Harbor/Nexus)
    • 实施镜像签名验证
  2. 编排升级

    • 从docker-compose向Kubernetes过渡方案
    • 使用Kompose工具转换配置
  3. 监控体系

    • 集成Prometheus+Grafana监控
    • 配置Alertmanager告警规则
  4. CI/CD集成

    • Jenkins Pipeline示例:
      1. pipeline {
      2. agent any
      3. stages {
      4. stage('Build') {
      5. steps {
      6. sh 'docker-compose build'
      7. }
      8. }
      9. stage('Deploy') {
      10. steps {
      11. sh 'docker-compose up -d'
      12. }
      13. }
      14. }
      15. }

本指南系统覆盖了CentOS环境下Docker生态的核心配置,从基础安装到企业级实践形成完整知识体系。建议开发者根据实际场景选择配置方案,定期更新组件版本,并建立完善的容器管理规范。对于生产环境,建议结合Ansible等工具实现自动化配置管理,确保环境一致性。