logo

CentOS下Docker生态全攻略:安装、镜像、代理与编排

作者:Nicky2025.10.10 18:46浏览量:5

简介:本文全面介绍了CentOS系统中Docker的安装方法、国内镜像仓库配置、Proxy代理设置及docker-compose的安装流程,为开发者提供一站式解决方案。

CentOS Docker 安装指南

一、环境准备与系统要求

在CentOS系统上部署Docker前,需确认系统版本和硬件配置满足要求。推荐使用CentOS 7或CentOS 8(需注意CentOS 8已进入EOL阶段),最低配置要求2GB内存和20GB磁盘空间。建议使用干净的系统环境,避免与其他容器运行时(如rkt)冲突。

二、Docker官方安装流程

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

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

5. 启动服务

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

三、Docker国内镜像加速配置

1. 主流国内镜像源对比

镜像源 地址 特点
阿里云 https://.mirror.aliyuncs.com 需登录阿里云控制台获取专属地址
腾讯云 https://mirror.ccs.tencentyun.com 腾讯云用户专用
华为云 https://.myhuaweicloud.com 需绑定华为云账号
中科大 https://docker.mirrors.ustc.edu.cn 公开可用,无需认证

2. 配置daemon.json

  1. {
  2. "registry-mirrors": [
  3. "https://registry.docker-cn.com",
  4. "https://<your-mirror-url>"
  5. ],
  6. "max-concurrent-downloads": 10
  7. }

配置文件路径:/etc/docker/daemon.json

3. 重启Docker服务

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

四、Proxy代理配置方案

1. 系统级代理设置

  1. # 临时设置
  2. export HTTP_PROXY=http://proxy.example.com:8080
  3. export HTTPS_PROXY=http://proxy.example.com:8080
  4. # 永久设置(写入/etc/profile)
  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

2. 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"
  4. Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

3. 容器内代理配置

方式一:启动时传递环境变量

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

方式二:使用Dockerfile配置

  1. ENV HTTP_PROXY=http://proxy.example.com:8080
  2. ENV HTTPS_PROXY=http://proxy.example.com:8080

五、docker-compose安装与使用

1. 安装方法对比

方法 命令 适用场景
官方安装脚本 curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 最新版本,需手动授权
pip安装 pip install docker-compose Python环境已配置的系统
包管理器安装 sudo yum install docker-compose 部分CentOS版本可能滞后

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. docker-compose --version

3. 基础使用示例

创建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. db:
  10. image: mysql:5.7
  11. environment:
  12. MYSQL_ROOT_PASSWORD: example
  13. MYSQL_DATABASE: testdb

常用命令

  1. # 启动服务
  2. docker-compose up -d
  3. # 查看状态
  4. docker-compose ps
  5. # 停止服务
  6. docker-compose down
  7. # 查看日志
  8. docker-compose logs -f

六、常见问题解决方案

1. 镜像拉取失败处理

  • 检查镜像名称是否正确
  • 验证镜像源是否可用
  • 清除本地镜像缓存:docker system prune -a
  • 检查网络连接和代理设置

2. 端口冲突解决

  1. # 查看端口占用
  2. netstat -tulnp | grep <port>
  3. # 修改docker-compose端口映射
  4. ports:
  5. - "<new-port>:80"

3. 性能优化建议

  • 配置存储驱动为overlay2(CentOS 7默认)
  • 调整Docker内存限制:在/etc/docker/daemon.json中添加
    1. {
    2. "default-ulimits": {
    3. "nofile": {
    4. "Name": "nofile",
    5. "Hard": 65535,
    6. "Soft": 65535
    7. }
    8. }
    9. }
  • 定期清理无用镜像和容器

七、最佳实践推荐

  1. 镜像管理:使用多阶段构建减少镜像大小,采用.dockerignore文件排除无关文件
  2. 安全配置
    • 避免使用root用户运行容器
    • 定期更新基础镜像
    • 限制容器资源使用
  3. 编排优化
    • 合理设置restart策略
    • 使用healthcheck保持服务可用性
    • 配置依赖服务启动顺序

八、进阶技巧

1. 使用BuildKit加速构建

/etc/docker/daemon.json中添加:

  1. {
  2. "features": {
  3. "buildkit": true
  4. }
  5. }

或通过环境变量启用:

  1. export DOCKER_BUILDKIT=1

2. 私有仓库配置

  1. # 登录私有仓库
  2. docker login registry.example.com
  3. # 推送镜像
  4. docker tag my-image registry.example.com/my-repo/my-image
  5. docker push registry.example.com/my-repo/my-image

3. 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

通过以上系统化的配置,开发者可以在CentOS环境中构建高效、稳定的Docker生态体系。建议定期关注Docker官方更新和国内镜像源的公告,及时调整配置以获得最佳体验。对于生产环境,建议结合CI/CD流程实现镜像的自动化构建和部署,进一步提升开发效率。

相关文章推荐

发表评论

活动