logo

CentOS下Docker生态全攻略:安装、镜像加速与编排工具配置

作者:新兰2025.10.10 18:46浏览量:3

简介:本文详细介绍CentOS系统下Docker的安装流程、国内镜像仓库配置方法、Proxy代理设置技巧及docker-compose的部署方案,助力开发者高效构建容器化环境。

CentOS Docker 安装指南

1.1 系统环境准备

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

  • 64位架构的CentOS 7或8版本
  • 至少2GB内存(生产环境建议4GB+)
  • 禁用SELinux或配置为permissive模式(临时方案:setenforce 0
  • 配置稳定的YUM源(推荐使用阿里云或清华大学的镜像源)

1.2 官方安装流程

基础依赖安装

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

该命令安装Docker所需的依赖包,其中yum-utils提供repoadd等实用工具,device-mapper是存储驱动的核心组件。

配置Docker仓库

  1. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

对于国内用户,建议替换为阿里云镜像源:

  1. sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker CE

  1. sudo yum install docker-ce docker-ce-cli containerd.io

最新版本安装命令会自动解决依赖关系。如需指定版本,可使用:

  1. yum list docker-ce --showduplicates | sort -r
  2. sudo yum install docker-ce-<VERSION_STRING>

启动服务

  1. sudo systemctl enable docker
  2. sudo systemctl start docker

验证安装:

  1. sudo docker run hello-world

Docker国内镜像仓库配置

2.1 镜像加速原理

国内用户访问Docker Hub常面临网络延迟问题,通过配置镜像加速器可有效提升拉取速度。主流加速器包括:

  • 阿里云容器镜像服务(需登录阿里云控制台获取专属地址)
  • 腾讯云CR镜像服务
  • 网易蜂巢镜像
  • 中科大镜像站

2.2 配置方法

修改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. "https://registry.docker-cn.com",
  7. "https://mirror.baidubce.com"
  8. ]
  9. }
  10. EOF

重启Docker服务

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

验证配置

  1. docker info | grep "Registry Mirrors" -A 5

正常输出应显示配置的镜像地址列表。

2.3 私有仓库搭建

对于企业级应用,推荐搭建Harbor私有仓库:

  1. # 安装依赖
  2. sudo yum install -y docker-compose
  3. # 下载Harbor安装包
  4. wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-online-installer-v2.5.0.tgz
  5. tar xvf harbor-online-installer-v2.5.0.tgz
  6. cd harbor
  7. # 修改配置文件
  8. cp harbor.yml.tmpl harbor.yml
  9. vi harbor.yml # 修改hostname、password等参数
  10. # 执行安装
  11. sudo ./install.sh

Proxy代理配置方案

3.1 系统级代理设置

环境变量方式

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

systemd服务配置

对于Docker服务,需修改/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

3.2 容器级代理设置

通过—env参数传递

  1. docker run --env HTTP_PROXY=http://proxy.example.com:8080 alpine env

使用Dockerfile配置

  1. ENV HTTP_PROXY http://proxy.example.com:8080
  2. ENV HTTPS_PROXY http://proxy.example.com:8080
  3. RUN echo "Acquire::http::Proxy \"http://proxy.example.com:8080\";" > /etc/apt/apt.conf.d/proxy.conf

3.3 代理认证配置

如需认证的代理服务器:

  1. export HTTP_PROXY=http://username:password@proxy.example.com:8080

或在Docker配置文件中使用:

  1. {
  2. "proxies": {
  3. "default": {
  4. "httpProxy": "http://username:password@proxy.example.com:8080",
  5. "httpsProxy": "http://username:password@proxy.example.com:8080"
  6. }
  7. }
  8. }

docker-compose安装与使用

4.1 安装方式

二进制包安装(推荐)

  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

Python pip安装

  1. sudo pip install docker-compose

验证安装

  1. docker-compose --version

4.2 基础使用示例

创建docker-compose.yml文件:

  1. version: '3'
  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:alpine

执行命令:

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

4.3 高级配置技巧

环境变量注入

  1. services:
  2. app:
  3. image: myapp
  4. environment:
  5. - DB_HOST=db
  6. - DB_PASSWORD=${DB_PASSWORD}

使用.env文件存储敏感信息:

  1. DB_PASSWORD=secret123

网络配置

  1. services:
  2. web:
  3. networks:
  4. - frontend
  5. db:
  6. networks:
  7. - backend
  8. networks:
  9. frontend:
  10. backend:

卷管理

  1. volumes:
  2. db-data:
  3. driver: local
  4. driver_opts:
  5. type: 'nfs'
  6. o: 'addr=10.40.0.199,rw'
  7. device: ':/docker/example/mariadb'

4.4 编排最佳实践

  1. 版本控制:始终指定compose文件版本(如version: '3.8'
  2. 模块化设计:将大型应用拆分为多个compose文件,使用extends或多个文件合并
  3. 健康检查
    1. services:
    2. web:
    3. image: nginx
    4. healthcheck:
    5. test: ["CMD", "curl", "-f", "http://localhost"]
    6. interval: 30s
    7. timeout: 10s
    8. retries: 3
  4. 资源限制
    1. services:
    2. app:
    3. deploy:
    4. resources:
    5. limits:
    6. cpus: '0.50'
    7. memory: 512M
    8. reservations:
    9. memory: 256M

常见问题解决方案

5.1 启动失败排查

  1. 检查日志journalctl -u docker --no-pager -n 100
  2. 存储驱动问题:修改/etc/docker/daemon.json
    1. {
    2. "storage-driver": "overlay2"
    3. }
  3. 端口冲突:使用netstat -tulnp | grep 2375检查端口占用

5.2 镜像拉取缓慢

  1. 确认镜像加速器配置正确
  2. 检查DNS解析:dig registry-1.docker.io
  3. 临时使用国内镜像:
    1. docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.23.0

5.3 代理配置失效

  1. 验证代理服务器可达性:curl -v http://proxy.example.com:8080
  2. 检查系统环境变量:env | grep -i proxy
  3. 确认Docker服务已重启:systemctl status docker

总结与展望

本文系统阐述了CentOS环境下Docker生态的完整部署方案,从基础安装到高级编排工具配置,覆盖了国内用户最关心的镜像加速和代理设置问题。实际生产环境中,建议:

  1. 建立完善的镜像管理流程,结合私有仓库和公有镜像源
  2. 通过CI/CD流水线自动化容器构建和部署
  3. 定期更新Docker和compose版本以获取最新特性
  4. 监控容器资源使用情况,合理设置资源限制

随着容器技术的不断发展,未来可进一步探索:

  • Docker与Kubernetes的集成部署
  • 服务网格(Service Mesh)在容器环境中的应用
  • 基于容器的无服务器(Serverless)架构实践
  • 容器安全加固的最佳实践

通过科学配置和管理,Docker可以显著提升开发效率和应用部署的灵活性,成为现代化IT基础设施的重要组成部分。

相关文章推荐

发表评论

活动