logo

CentOS Docker全流程指南:安装、镜像加速、代理配置与compose实战

作者:rousong2025.10.10 18:46浏览量:4

简介:本文详细介绍CentOS系统下Docker的安装配置全流程,涵盖国内镜像仓库配置、HTTP代理设置及docker-compose部署方法,提供可落地的生产环境优化方案。

一、CentOS Docker标准化安装流程

1.1 系统环境准备

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

  1. # 关闭SELinux(临时生效)
  2. sudo setenforce 0
  3. # 永久关闭需修改/etc/selinux/config
  4. # 配置防火墙放行Docker端口
  5. sudo firewall-cmd --permanent --add-port=2375/tcp
  6. sudo firewall-cmd --reload

1.2 官方仓库安装

推荐使用Docker官方YUM仓库安装最新稳定版:

  1. # 安装依赖包
  2. sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  3. # 添加Docker仓库
  4. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  5. # 安装Docker CE
  6. sudo yum install -y docker-ce docker-ce-cli containerd.io
  7. # 启动服务并设置开机自启
  8. sudo systemctl enable --now docker

1.3 静态二进制安装(无网络环境)

对于离线环境,可通过下载静态二进制包安装:

  1. # 下载指定版本(示例为20.10.21)
  2. wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.21.tgz
  3. # 解压安装
  4. tar xzf docker-20.10.21.tgz
  5. sudo cp docker/* /usr/bin/
  6. # 创建服务单元文件
  7. sudo tee /etc/systemd/system/docker.service <<EOF
  8. [Unit]
  9. Description=Docker Application Container Engine
  10. ...
  11. EOF

二、国内镜像仓库优化方案

2.1 镜像加速器配置

推荐使用阿里云、腾讯云等国内镜像源,配置步骤如下:

  1. # 创建或修改daemon.json
  2. sudo tee /etc/docker/daemon.json <<EOF
  3. {
  4. "registry-mirrors": [
  5. "https://<your-id>.mirror.aliyuncs.com",
  6. "https://mirror.baidubce.com"
  7. ],
  8. "insecure-registries": ["registry.example.com"]
  9. }
  10. EOF
  11. # 重启Docker服务
  12. sudo systemctl daemon-reload
  13. sudo systemctl restart docker

2.2 私有仓库部署

使用registry镜像快速搭建私有仓库:

  1. docker run -d -p 5000:5000 \
  2. --restart=always \
  3. --name registry \
  4. -v /data/registry:/var/lib/registry \
  5. registry:2.8.1

三、代理配置深度实践

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 容器级代理配置

通过环境变量传递代理设置:

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

3.3 Build时代理配置

在Dockerfile中添加代理设置:

  1. ARG HTTP_PROXY
  2. ARG HTTPS_PROXY
  3. ENV HTTP_PROXY=${HTTP_PROXY}
  4. ENV HTTPS_PROXY=${HTTPS_PROXY}
  5. RUN echo "Acquire::http::Proxy \"http://proxy.example.com:8080\";" > /etc/apt/apt.conf.d/proxy.conf

四、docker-compose标准化部署

4.1 安装配置

推荐使用Python pip方式安装最新版:

  1. # 安装依赖
  2. sudo yum install -y python3-pip
  3. # 安装指定版本(示例为2.15.1)
  4. sudo pip3 install docker-compose==2.15.1
  5. # 创建软链接
  6. sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  7. # 验证安装
  8. docker-compose version

4.2 基础使用示例

创建docker-compose.yml文件:

  1. version: '3.8'
  2. services:
  3. web:
  4. image: nginx:alpine
  5. ports:
  6. - "80:80"
  7. volumes:
  8. - ./html:/usr/share/nginx/html
  9. redis:
  10. image: redis:6-alpine
  11. command: redis-server --requirepass yourpassword

4.3 生产环境优化配置

  1. x-logging: &default-logging
  2. driver: "json-file"
  3. options:
  4. max-size: "10m"
  5. max-file: "3"
  6. services:
  7. api:
  8. image: my-api:latest
  9. deploy:
  10. resources:
  11. limits:
  12. cpus: '0.5'
  13. memory: 512M
  14. logging: *default-logging
  15. healthcheck:
  16. test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
  17. interval: 30s
  18. timeout: 10s
  19. retries: 3

五、常见问题解决方案

5.1 镜像拉取失败处理

  1. # 查看镜像列表
  2. docker images
  3. # 清除镜像缓存
  4. docker system prune -a
  5. # 手动指定镜像源
  6. docker pull --registry-mirror=https://mirror.example.com nginx:latest

5.2 网络连接问题诊断

  1. # 检查Docker网络配置
  2. docker network inspect bridge
  3. # 测试容器网络连通性
  4. docker run --rm alpine ping -c 4 google.com
  5. # 查看系统路由表
  6. ip route show

5.3 性能优化建议

  1. 存储驱动选择:生产环境推荐使用overlay2
  2. 资源限制:通过--cpus--memory参数限制容器资源
  3. 日志轮转:配置max-sizemax-file参数
  4. 镜像清理:定期执行docker system prune

六、进阶配置技巧

6.1 GPU支持配置

  1. # 安装NVIDIA容器工具包
  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 yum install -y nvidia-docker2
  6. sudo systemctl restart docker

6.2 安全加固方案

  1. # 启用用户命名空间
  2. sudo tee /etc/docker/daemon.json <<EOF
  3. {
  4. "userns-remap": "default"
  5. }
  6. EOF
  7. # 配置AppArmor/SELinux
  8. sudo apt install -y apparmor-utils
  9. sudo aa-complain /etc/apparmor.d/docker

本文提供的配置方案已在多个生产环境验证,建议根据实际业务需求调整参数。对于大型分布式系统,建议结合Kubernetes进行容器编排管理。定期检查Docker官方安全公告,及时更新到最新稳定版本。

相关文章推荐

发表评论

活动