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

CentOS Docker 安装指南

一、CentOS系统Docker基础安装

1.1 环境准备与依赖安装

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

  1. # 卸载旧版本(如有)
  2. sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
  3. # 安装依赖包
  4. sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 官方仓库配置(推荐生产环境使用)

  1. # 添加Docker官方仓库
  2. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. # 验证仓库有效性
  4. sudo yum repolist enabled | grep "docker.*ce"

1.3 快速安装方案

  1. # 安装最新稳定版
  2. sudo yum install -y docker-ce docker-ce-cli containerd.io
  3. # 启动服务并设置开机自启
  4. sudo systemctl enable --now docker
  5. # 验证安装
  6. sudo docker run hello-world

二、国内镜像仓库加速配置

2.1 主流国内镜像源对比

镜像源 地址 特点
阿里云 https://.mirror.aliyuncs.com 需登录阿里云容器服务获取专属ID
腾讯云 https://mirror.ccs.tencentyun.com 腾讯云用户专属
中科大 https://docker.mirrors.ustc.edu.cn 学术机构首选
网易 https://hub-mirror.c.163.com 无需注册

2.2 配置方法详解

  1. # 创建或修改配置文件
  2. sudo mkdir -p /etc/docker
  3. sudo tee /etc/docker/daemon.json <<-'EOF'
  4. {
  5. "registry-mirrors": [
  6. "https://<your_mirror_url>",
  7. "https://<secondary_mirror>"
  8. ],
  9. "max-concurrent-downloads": 10,
  10. "log-driver": "json-file",
  11. "log-opts": {
  12. "max-size": "100m"
  13. }
  14. }
  15. EOF
  16. # 重启服务生效
  17. sudo systemctl daemon-reload
  18. sudo systemctl restart docker

2.3 验证镜像加速效果

  1. # 拉取镜像测试
  2. sudo docker pull centos:7
  3. # 查看下载来源
  4. sudo docker inspect --format='{{.RepoDigests}}' centos:7

三、Proxy代理配置方案

3.1 系统级代理配置

  1. # 创建代理配置文件
  2. sudo mkdir -p /etc/systemd/system/docker.service.d
  3. sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<-'EOF'
  4. [Service]
  5. Environment="HTTP_PROXY=http://proxy.example.com:8080"
  6. Environment="HTTPS_PROXY=http://proxy.example.com:8080"
  7. Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
  8. EOF
  9. # 重新加载配置并重启
  10. sudo systemctl daemon-reload
  11. sudo systemctl restart docker

3.2 Docker客户端代理配置

  1. # 创建或修改~/.docker/config.json
  2. mkdir -p ~/.docker
  3. tee ~/.docker/config.json <<-'EOF'
  4. {
  5. "proxies": {
  6. "default": {
  7. "httpProxy": "http://proxy.example.com:8080",
  8. "httpsProxy": "http://proxy.example.com:8080",
  9. "noProxy": "localhost,127.0.0.1,.example.com"
  10. }
  11. }
  12. }
  13. EOF

3.3 容器内代理配置

  1. # Dockerfile示例
  2. FROM centos:7
  3. ENV http_proxy=http://proxy.example.com:8080
  4. ENV https_proxy=http://proxy.example.com:8080
  5. ENV no_proxy=localhost,127.0.0.1,.example.com
  6. RUN echo "proxy=http://proxy.example.com:8080" >> /etc/yum.conf

四、docker-compose安装与配置

4.1 安装方法对比

方法 命令 适用场景
官方二进制包 sudo curl -L “https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose 生产环境推荐
pip安装 sudo pip install docker-compose Python环境已配置场景
容器化部署 sudo docker run —rm -v “$PWD”:/app -w /app docker/compose:latest up 临时测试使用

4.2 推荐安装方案

  1. # 下载最新稳定版
  2. sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  3. # 添加执行权限
  4. sudo chmod +x /usr/local/bin/docker-compose
  5. # 创建软链接(可选)
  6. sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  7. # 验证安装
  8. docker-compose --version

4.3 基础使用示例

  1. # docker-compose.yml示例
  2. version: '3.8'
  3. services:
  4. web:
  5. image: nginx:latest
  6. ports:
  7. - "80:80"
  8. volumes:
  9. - ./html:/usr/share/nginx/html
  10. deploy:
  11. resources:
  12. limits:
  13. cpus: '0.5'
  14. memory: 512M
  15. db:
  16. image: mysql:5.7
  17. environment:
  18. MYSQL_ROOT_PASSWORD: example
  19. MYSQL_DATABASE: testdb
  20. volumes:
  21. - db_data:/var/lib/mysql
  22. volumes:
  23. db_data:

五、高级配置与优化建议

5.1 存储驱动选择

  1. # 查看可用存储驱动
  2. sudo docker info | grep "Storage Driver"
  3. # 修改存储驱动(需清空现有容器和镜像)
  4. sudo tee /etc/docker/daemon.json <<-'EOF'
  5. {
  6. "storage-driver": "overlay2",
  7. "storage-opts": [
  8. "overlay2.override_kernel_check=true"
  9. ]
  10. }
  11. EOF

5.2 日志管理配置

  1. # 配置日志轮转
  2. sudo tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "log-driver": "json-file",
  5. "log-opts": {
  6. "max-size": "10m",
  7. "max-file": "3",
  8. "labels": "production_status",
  9. "env": "os,customer"
  10. }
  11. }
  12. EOF

5.3 安全加固建议

  1. 定期更新Docker版本
  2. 限制容器资源使用(—cpus, —memory)
  3. 使用非root用户运行容器
  4. 定期清理无用镜像和容器
    1. # 安全清理脚本示例
    2. sudo docker system prune -af --volumes

六、常见问题解决方案

6.1 镜像拉取失败处理

  1. # 查看详细错误
  2. sudo docker pull centos:7 -v
  3. # 常见解决方案
  4. 1. 检查镜像名称是否正确
  5. 2. 验证代理配置是否生效
  6. 3. 更换国内镜像源
  7. 4. 检查网络防火墙设置

6.2 docker-compose版本兼容性

  1. # 查看版本兼容性
  2. docker-compose --version
  3. docker --version
  4. # 版本对应关系表
  5. | Compose版本 | Docker引擎要求 |
  6. |-------------|----------------|
  7. | v2.x | 19.03+ |
  8. | v1.29.x | 18.06+ |

6.3 性能优化参数

  1. # 修改内核参数
  2. sudo tee /etc/sysctl.d/docker.conf <<-'EOF'
  3. net.ipv4.ip_forward=1
  4. net.bridge.bridge-nf-call-iptables=1
  5. vm.overcommit_memory=1
  6. EOF
  7. # 应用配置
  8. sudo sysctl -p /etc/sysctl.d/docker.conf

本指南完整覆盖了CentOS系统下Docker生态的部署全流程,从基础安装到高级配置均提供了经过验证的解决方案。建议读者根据实际环境选择适合的配置方案,并定期关注Docker官方安全更新。对于企业级部署,建议结合CI/CD流水线实现自动化配置管理。