CentOS环境下Docker生态全流程配置指南:安装、镜像、代理与编排

一、CentOS Docker基础安装与环境准备

1.1 系统兼容性验证

Docker官方推荐使用CentOS 7/8或RHEL 7/8系统,需确认内核版本≥3.10。通过uname -r命令可查看当前内核版本,建议使用最新稳定版内核以获得最佳兼容性。

1.2 依赖环境安装

  1. # 安装基础依赖包
  2. sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  3. # 配置阿里云镜像加速(可选)
  4. sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 Docker CE安装流程

  1. # 安装Docker CE
  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

1.4 国内镜像源配置

编辑/etc/docker/daemon.json文件(不存在则创建):

  1. {
  2. "registry-mirrors": [
  3. "https://registry.docker-cn.com",
  4. "https://hub-mirror.c.163.com",
  5. "https://mirror.baidubce.com"
  6. ],
  7. "insecure-registries": []
  8. }

重启服务生效:

  1. sudo systemctl restart docker

二、Docker代理配置方案

2.1 系统级代理设置

2.1.1 环境变量配置

  1. # 临时设置
  2. export HTTP_PROXY=http://proxy.example.com:8080
  3. export HTTPS_PROXY=http://proxy.example.com:8080
  4. # 永久生效(写入~/.bashrc)
  5. echo 'export HTTP_PROXY=http://proxy.example.com:8080' >> ~/.bashrc
  6. echo 'export HTTPS_PROXY=http://proxy.example.com:8080' >> ~/.bashrc
  7. source ~/.bashrc

2.1.2 systemd服务配置

创建/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"

执行以下命令重新加载配置:

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

2.2 Docker客户端代理配置

2.2.1 配置文件方式

~/.docker/config.json中添加:

  1. {
  2. "proxies": {
  3. "default": {
  4. "httpProxy": "http://proxy.example.com:8080",
  5. "httpsProxy": "http://proxy.example.com:8080",
  6. "noProxy": "localhost,127.0.0.1"
  7. }
  8. }
  9. }

2.2.3 构建时代理传递

Dockerfile中通过ARG传递代理:

  1. ARG HTTP_PROXY
  2. ARG HTTPS_PROXY
  3. ENV HTTP_PROXY=${HTTP_PROXY}
  4. ENV HTTPS_PROXY=${HTTPS_PROXY}
  5. RUN apt-get update && apt-get install -y curl

三、docker-compose安装与配置

3.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 最新版本控制
pip安装 sudo pip install docker-compose Python环境已配置场景
容器化部署 docker run -v /var/run/docker.sock:/var/run/docker.sock docker/compose 临时测试环境

3.2 推荐安装流程

  1. # 下载最新稳定版
  2. sudo curl -L "https://github.com/docker/compose/releases/latest/download/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

3.3 代理配置集成

docker-compose.yml中配置构建参数:

  1. version: '3.8'
  2. services:
  3. app:
  4. build:
  5. context: .
  6. args:
  7. HTTP_PROXY: http://proxy.example.com:8080
  8. HTTPS_PROXY: http://proxy.example.com:8080

或通过环境变量注入:

  1. services:
  2. app:
  3. environment:
  4. - HTTP_PROXY=http://proxy.example.com:8080
  5. - HTTPS_PROXY=http://proxy.example.com:8080

四、高级配置与优化

4.1 存储驱动配置

  1. # /etc/docker/daemon.json 添加
  2. {
  3. "storage-driver": "overlay2",
  4. "storage-opts": [
  5. "overlay2.override_kernel_check=true"
  6. ]
  7. }

4.2 日志驱动配置

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

4.3 资源限制配置

  1. # docker-compose示例
  2. services:
  3. web:
  4. deploy:
  5. resources:
  6. limits:
  7. cpus: '0.50'
  8. memory: 512M
  9. reservations:
  10. memory: 256M

五、常见问题解决方案

5.1 镜像拉取失败处理

  1. 检查镜像名称拼写
  2. 验证镜像源可用性:
    1. curl -I https://registry.hub.docker.com/v2/
  3. 清除本地缓存:
    1. docker system prune -a

5.2 代理配置不生效排查

  1. 检查环境变量是否设置正确
  2. 验证代理服务器可达性:
    1. curl -x http://proxy.example.com:8080 http://www.baidu.com
  3. 检查Docker服务日志:
    1. journalctl -u docker --no-pager -n 50

5.3 docker-compose版本兼容性

使用docker-compose config验证文件格式,确保与安装版本兼容。对于v3+格式,需要Docker 1.13.0+版本支持。

六、最佳实践建议

  1. 镜像管理:建立私有仓库时,推荐使用Harbor或Nexus Repository Manager
  2. 安全配置
    • 定期轮换镜像仓库凭证
    • 使用--no-cache参数避免缓存攻击
    • 限制容器权限(--cap-drop=ALL
  3. 性能优化
    • 合理设置--ulimit参数
    • 使用cgroup进行资源隔离
    • 考虑使用cgroups v2(CentOS 8+)

本指南完整覆盖了CentOS环境下Docker生态的核心配置,从基础安装到高级优化均提供了可落地的解决方案。实际部署时建议先在测试环境验证配置,再逐步推广到生产环境。对于企业级部署,建议结合Ansible或Puppet等配置管理工具实现自动化部署。