CentOS下Docker全流程配置指南:从安装到高效管理

一、CentOS Docker安装指南

Docker作为容器化技术的标杆,在CentOS系统上的部署是开发者构建高效开发环境的第一步。以下步骤基于CentOS 7/8系统,确保系统内核版本≥3.10(通过uname -r命令验证)。

1.1 基础环境准备

首先卸载可能存在的旧版本Docker:

  1. sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

安装必要的依赖包:

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

1.2 官方仓库配置

添加Docker官方仓库(推荐使用阿里云镜像加速时仍需保留):

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

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

  1. sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

1.3 安装与启动

安装Docker CE社区版:

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

启动服务并设置开机自启:

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

验证安装:

  1. sudo docker run hello-world

二、Docker国内镜像仓库配置

国内开发者常面临拉取镜像速度慢的问题,配置镜像加速器可提升3-5倍下载速度。

2.1 主流镜像源对比

镜像源 地址 推荐指数
阿里云 需登录获取专属地址 ★★★★★
腾讯云 mirror.ccs.tencentyun.com ★★★★
华为云 swr.cn-south-1.myhuaweicloud.com ★★★
中科大 docker.mirrors.ustc.edu.cn ★★★★

2.2 配置方法

编辑daemon配置文件:

  1. sudo mkdir -p /etc/docker
  2. sudo tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "registry-mirrors": [
  5. "https://<your-aliyun-mirror>.mirror.aliyuncs.com",
  6. "https://mirror.ccs.tencentyun.com"
  7. ],
  8. "max-concurrent-downloads": 10
  9. }
  10. EOF

重启Docker服务:

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

验证配置:

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

三、Proxy代理配置方案

在企业网络或特殊网络环境下,需要配置HTTP/HTTPS代理。

3.1 系统级代理配置

编辑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. Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
  7. EOF

重新加载并重启:

  1. sudo systemctl daemon-reload
  2. 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 echo "Proxy configured"

或通过~/.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"
  7. }
  8. }
  9. }

四、docker-compose安装与使用

docker-compose是管理多容器应用的利器,特别适合微服务架构开发。

4.1 安装方式对比

安装方式 命令 适用场景
官方二进制 sudo curl -L... 推荐生产环境使用
pip安装 pip install docker-compose Python环境已配置时
源码编译 复杂且不推荐 特殊定制需求

4.2 官方推荐安装

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

验证安装:

  1. docker-compose --version

4.3 基础使用示例

创建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:alpine
  11. command: redis-server --appendonly yes

启动服务:

  1. docker-compose up -d

常用命令:

  1. docker-compose ps # 查看状态
  2. docker-compose logs -f # 实时日志
  3. docker-compose down # 停止并删除

五、最佳实践建议

  1. 镜像管理:定期清理无用镜像(docker image prune),使用标签而非latest
  2. 安全配置
    • 禁用root用户运行容器
    • 使用--read-only挂载根文件系统
    • 配置--cap-drop=ALL减少权限
  3. 性能优化
    • 合理设置--ulimit参数
    • 使用--network=host提升网络性能(需谨慎)
  4. 备份策略:定期备份/var/lib/docker目录或使用docker save导出镜像

六、常见问题解决方案

  1. 启动失败报错

    • 检查journalctl -u docker日志
    • 确认SELinux状态(getenforce),临时禁用可执行setenforce 0
  2. 镜像拉取超时

    • 验证镜像源配置
    • 检查网络代理设置
    • 尝试指定具体版本而非latest
  3. 端口冲突

    • 使用docker port <容器名>查看映射
    • 修改docker-compose.yml中的端口映射
  4. 存储空间不足

    • 清理旧容器:docker container prune
    • 扩展磁盘空间或配置存储驱动

通过以上配置,开发者可在CentOS系统上构建起高效的Docker开发环境,国内镜像加速可使镜像下载速度提升5-10倍,合理的代理配置能解决特殊网络环境下的访问问题,而docker-compose则大幅简化了多容器应用的管理复杂度。建议定期关注Docker官方安全更新,保持系统处于最新稳定版本。