logo

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

作者:宇宙中心我曹县2025.10.10 18:46浏览量:1

简介:本文详细讲解CentOS系统下Docker的安装、国内镜像加速配置、代理设置及docker-compose部署方法,帮助开发者快速构建高效容器化环境。

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

一、CentOS Docker安装指南

1.1 系统要求与前置检查

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

  • 64位系统架构
  • 内核版本≥3.10(通过uname -r查看)
  • 已禁用SELinux或配置为permissive模式(临时:setenforce 0
  • 关闭防火墙或开放必要端口(默认2375/2376)

1.2 安装步骤详解

方法一:官方仓库安装

  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
  5. # 添加官方仓库
  6. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  7. # 安装Docker CE
  8. sudo yum install -y docker-ce docker-ce-cli containerd.io
  9. # 启动服务
  10. sudo systemctl start docker
  11. sudo systemctl enable docker

方法二:阿里云镜像加速安装(推荐)

  1. # 使用阿里云Docker CE镜像
  2. sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  3. # 安装特定版本(示例)
  4. sudo yum install -y docker-ce-20.10.17 docker-ce-cli-20.10.17 containerd.io

1.3 验证安装

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

二、Docker国内镜像仓库配置

2.1 镜像加速原理

国内镜像仓库通过CDN技术缓存Docker Hub镜像,显著提升拉取速度。常见加速源包括:

  • 阿里云容器镜像服务(需登录获取专属地址)
  • 网易云镜像站(hub-mirror.c.163.com
  • 腾讯云镜像站(mirror.ccs.tencentyun.com
  • 中科大镜像站(docker.mirrors.ustc.edu.cn

2.2 配置方法

系统级配置(推荐)

  1. sudo mkdir -p /etc/docker
  2. sudo tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "registry-mirrors": [
  5. "https://<your-aliyun-id>.mirror.aliyuncs.com",
  6. "https://hub-mirror.c.163.com",
  7. "https://mirror.baidubce.com"
  8. ],
  9. "max-concurrent-downloads": 10
  10. }
  11. EOF
  12. sudo systemctl daemon-reload
  13. sudo systemctl restart docker

用户级配置

  1. # 创建或修改~/.docker/config.json
  2. mkdir -p ~/.docker
  3. cat > ~/.docker/config.json <<EOF
  4. {
  5. "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
  6. }
  7. EOF

2.3 验证镜像加速

  1. docker pull nginx:latest
  2. # 观察拉取速度是否显著提升

三、Proxy代理配置方案

3.1 HTTP/HTTPS代理配置

系统级代理

  1. # 编辑systemd配置
  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

容器内代理

  1. # 运行容器时指定代理
  2. docker run -e HTTP_PROXY=http://proxy.example.com:8080 alpine env

3.2 SOCKS5代理配置

  1. # 使用privoxy转换SOCKS5为HTTP
  2. sudo yum install -y privoxy
  3. sudo sed -i 's/^listen-address.*/listen-address 0.0.0.0:8118/' /etc/privoxy/config
  4. sudo echo 'forward-socks5 / localhost:1080 .' >> /etc/privoxy/config
  5. sudo systemctl start privoxy
  6. # 配置Docker使用
  7. sudo tee /etc/systemd/system/docker.service.d/socks-proxy.conf <<EOF
  8. [Service]
  9. Environment="HTTP_PROXY=http://localhost:8118"
  10. EOF

四、docker-compose安装与配置

4.1 安装方法

方法一:pip安装(推荐)

  1. # 安装Python3及pip
  2. sudo yum install -y python3 python3-pip
  3. # 安装指定版本
  4. sudo pip3 install docker-compose==1.29.2
  5. # 验证安装
  6. docker-compose --version

方法二:二进制安装

  1. sudo curl -L "https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  2. sudo chmod +x /usr/local/bin/docker-compose

4.2 基础使用示例

创建docker-compose.yml文件:

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

运行命令:

  1. docker-compose up -d # 后台启动
  2. docker-compose logs # 查看日志
  3. docker-compose down # 停止并删除容器

4.3 高级配置技巧

多环境配置

  1. # docker-compose.yml
  2. services:
  3. app:
  4. image: myapp
  5. environment:
  6. - NODE_ENV=${NODE_ENV:-development}
  7. # .env文件
  8. NODE_ENV=production

网络配置

  1. networks:
  2. frontend:
  3. driver: bridge
  4. ipam:
  5. config:
  6. - subnet: 172.20.0.0/16
  7. services:
  8. web:
  9. networks:
  10. - frontend

五、常见问题解决方案

5.1 启动失败排查

  1. # 查看详细错误
  2. journalctl -u docker.service -n 50 --no-pager
  3. # 常见原因
  4. - 存储驱动冲突(overlay2 vs devicemapper
  5. - 端口被占用(netstat -tulnp | grep 2375
  6. - 配置文件语法错误(jsonlint /etc/docker/daemon.json

5.2 镜像拉取慢优化

  1. # 测试镜像源速度
  2. time docker pull alpine
  3. time docker pull registry.cn-hangzhou.aliyuncs.com/library/alpine
  4. # 多镜像源配置策略
  5. {
  6. "registry-mirrors": [
  7. "https://<primary-mirror>",
  8. "https://<secondary-mirror>"
  9. ],
  10. "max-concurrent-downloads": 5
  11. }

5.3 代理配置失效处理

  1. # 检查环境变量是否生效
  2. docker run --rm alpine env | grep -i proxy
  3. # 临时调试方法
  4. docker run -it --rm -e HTTP_PROXY=http://proxy.example.com alpine sh

六、最佳实践建议

  1. 版本锁定:在生产环境中固定Docker和docker-compose版本
  2. 资源限制:通过--memory--cpus参数防止容器资源耗尽
  3. 镜像签名:启用Docker Content Trust(export DOCKER_CONTENT_TRUST=1
  4. 日志管理:配置log-driver和log-opts避免磁盘占满
  5. 安全加固
    • 定期更新内核和Docker
    • 使用非root用户运行容器
    • 限制容器特权(--cap-drop=ALL --cap-add=NET_BIND_SERVICE

通过以上配置,开发者可以在CentOS系统上构建高效、安全的Docker环境,充分利用国内镜像加速和代理配置提升开发效率。建议根据实际网络环境选择2-3个镜像源进行配置,并定期测试镜像拉取速度以优化配置。

相关文章推荐

发表评论

活动