CentOS下Docker生态全流程指南:安装、镜像加速、代理配置与Compose部署

CentOS Docker 安装、Docker国内镜像仓库、使用proxy代理配置、docker-compose安装

一、CentOS Docker 安装指南

1.1 系统环境准备

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

  • 64位架构系统
  • 至少2GB内存(生产环境建议4GB+)
  • 禁用SELinux(临时方式:setenforce 0
  • 关闭防火墙或配置Docker端口规则(默认2375/2376)

建议使用最新稳定版CentOS,可通过以下命令检查系统版本:

  1. cat /etc/redhat-release

1.2 安装步骤详解

步骤1:卸载旧版本

  1. sudo yum remove docker \
  2. docker-client \
  3. docker-client-latest \
  4. docker-common \
  5. docker-latest \
  6. docker-latest-logrotate \
  7. docker-logrotate \
  8. docker-engine

步骤2:安装依赖包

  1. sudo yum install -y yum-utils \
  2. device-mapper-persistent-data \
  3. lvm2

步骤3:配置Docker仓库

  1. sudo yum-config-manager \
  2. --add-repo \
  3. https://download.docker.com/linux/centos/docker-ce.repo
  4. # 国内用户推荐使用阿里云镜像
  5. sudo yum-config-manager \
  6. --add-repo \
  7. http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

步骤4:安装Docker CE

  1. sudo yum install -y docker-ce docker-ce-cli containerd.io
  2. # 指定版本安装(示例)
  3. # sudo yum install -y docker-ce-20.10.17 docker-ce-cli-20.10.17

步骤5:启动服务

  1. sudo systemctl enable docker
  2. sudo systemctl start docker
  3. sudo systemctl status docker # 应显示active (running)

1.3 验证安装

执行以下命令验证:

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

二、Docker国内镜像仓库配置

2.1 镜像加速必要性

国内访问Docker Hub存在网络延迟,配置镜像加速可提升:

  • 镜像拉取速度提升3-10倍
  • 避免拉取失败导致的部署中断
  • 节省国际带宽成本

2.2 主流镜像源对比

镜像源 地址 稳定性 适用场景
阿里云 https://.mirror.aliyuncs.com 企业生产环境
腾讯云 https://mirror.ccs.tencentyun.com 中高 腾讯云用户
华为云 https://.swr.myhuaweicloud.com 华为云用户
中科大 https://docker.mirrors.ustc.edu.cn 学术机构

2.3 配置方法

方法1:修改daemon.json

  1. sudo mkdir -p /etc/docker
  2. sudo tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "registry-mirrors": [
  5. "https://<your_mirror_url>"
  6. ],
  7. "max-concurrent-downloads": 10
  8. }
  9. EOF
  10. sudo systemctl daemon-reload
  11. sudo systemctl restart docker

方法2:使用环境变量(临时)

  1. export DOCKER_OPTS="--registry-mirror=https://<mirror_url>"

2.4 验证镜像加速

  1. docker info | grep "Registry Mirrors" -A 10
  2. # 应显示配置的镜像地址

三、Proxy代理配置方案

3.1 适用场景

  • 企业内网环境
  • 需要访问私有仓库
  • 跨地域部署时优化网络

3.2 系统级代理配置

方法1:全局环境变量

  1. # 临时设置
  2. export HTTP_PROXY=http://proxy.example.com:8080
  3. export HTTPS_PROXY=http://proxy.example.com:8080
  4. export NO_PROXY=localhost,127.0.0.1,.example.com
  5. # 永久生效(添加到/etc/profile或~/.bashrc)
  6. echo 'export HTTP_PROXY=http://proxy.example.com:8080' >> /etc/profile
  7. echo 'export HTTPS_PROXY=http://proxy.example.com:8080' >> /etc/profile
  8. source /etc/profile

方法2:systemd服务配置

  1. sudo mkdir -p /etc/systemd/system/docker.service.d
  2. sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<-'EOF'
  3. [Service]
  4. Environment="HTTP_PROXY=http://proxy.example.com:8080"
  5. Environment="HTTPS_PROXY=http://proxy.example.com:8080"
  6. EOF
  7. sudo systemctl daemon-reload
  8. sudo systemctl restart docker

3.3 Docker客户端代理

对于docker-compose等工具,可在~/.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,.example.com"
  7. }
  8. }
  9. }

3.4 验证代理生效

  1. docker run --rm alpine env | grep -i proxy
  2. # 应显示配置的代理变量

四、docker-compose安装与配置

4.1 安装方式对比

方式 命令 适用版本 更新方式
官方二进制包 `sudo curl -L … sh` 最新 手动更新
Python pip pip install docker-compose 较旧 pip升级
CentOS仓库 sudo yum install docker-compose 滞后 yum更新

4.2 推荐安装方法

方法1:官方二进制安装(最新版)

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

方法2:pip安装(适合已有Python环境)

  1. sudo pip install --upgrade pip
  2. sudo pip install docker-compose

4.3 版本验证

  1. docker-compose version
  2. # 应显示类似:
  3. # Docker Compose version v2.20.2

4.4 基础使用示例

创建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
  13. volumes:
  14. - db_data:/var/lib/mysql
  15. volumes:
  16. db_data:

执行命令:

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

五、生产环境优化建议

  1. 镜像管理:建立私有仓库(Harbor/Nexus),设置镜像保留策略
  2. 资源限制:在docker-compose中配置CPU/内存限制
    1. services:
    2. app:
    3. deploy:
    4. resources:
    5. limits:
    6. cpus: '0.5'
    7. memory: 512M
  3. 日志收集:配置ELK或Fluentd进行日志集中管理
  4. 安全加固
    • 定期更新Docker版本
    • 限制root用户操作
    • 使用AppArmor/SELinux进行容器隔离

六、常见问题解决方案

Q1:Docker服务启动失败

  • 检查日志:journalctl -u docker.service
  • 常见原因:端口冲突、存储驱动问题、配置文件错误

Q2:镜像拉取缓慢

  • 确认镜像源配置正确
  • 测试网络连通性:curl -v https://registry-1.docker.io/v2/

Q3:docker-compose版本不兼容

  • 检查版本兼容性矩阵
  • 升级建议:先升级Docker再升级compose

Q4:代理配置不生效

  • 检查环境变量是否被覆盖
  • 使用docker info | grep Proxy验证
  • 检查防火墙是否放行代理端口

七、进阶技巧

  1. 多阶段构建优化
    ```dockerfile

    第一阶段:构建

    FROM golang:1.20 as builder
    WORKDIR /app
    COPY . .
    RUN go build -o myapp

第二阶段:运行

FROM alpine:latest
COPY —from=builder /app/myapp /usr/local/bin/
CMD [“myapp”]

  1. 2. **健康检查配置**:
  2. ```yaml
  3. services:
  4. web:
  5. image: nginx
  6. healthcheck:
  7. test: ["CMD", "curl", "-f", "http://localhost"]
  8. interval: 30s
  9. timeout: 10s
  10. retries: 3
  1. GPU支持配置
    1. # 安装nvidia-docker2
    2. distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
    3. && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
    4. && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
    5. sudo apt-get update
    6. sudo apt-get install -y nvidia-docker2
    7. sudo systemctl restart docker

通过以上配置,可在CentOS系统上构建完整的Docker生产环境,涵盖从基础安装到高级优化的全流程。实际部署时,建议先在测试环境验证配置,再逐步推广到生产环境。