CentOS 7 安装指定版本 Docker 及镜像加速/配置优化攻略

发布于:2025-05-07 ⋅ 阅读:(51) ⋅ 点赞:(0)

在这里插入图片描述

摘要
本文详述 CentOS 7 系统下安装指定版本 Docker ,涵盖镜像加速配置(实测最快)、存储位置优化、日志轮转等核心配置。



一、安装指定版本Docker

1.1 卸载旧版本(如有)

sudo yum remove docker \
          docker-client \
          docker-client-latest \
          docker-common \
          docker-latest \
          docker-latest-logrotate \
          docker-logrotate \
          docker-engine

1.2 安装依赖包

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

1.3 添加Docker仓库(推荐阿里云镜像源)

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

1.4 查看可用版本

yum list docker-ce --showduplicates | sort -r

输出示例

docker-ce.x86_64  3:20.10.21-3.el7                    docker-ce-stable
docker-ce.x86_64  3:20.10.20-3.el7                    docker-ce-stable

1.5 安装指定版本

示例:安装20.10.20版本

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

二、镜像加速配置

2.1 镜像加速及配置优化

优化说明

  • 配置镜像加速地址,经实测速度很快,一个足够
  • 修改日志格式,并限制单个日志大小为20m,最多3个
  • 修改默认存储位置,避免占用根目录空间
  • 根据实际情况调整配置
sudo mkdir -p /etc/docker/
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.m.daocloud.io"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "20m",
    "max-file": "3"
  },
  "data-root": "/data/docker"
}
EOF

2.2 启动

systemctl daemon-reload && systemctl restart docker && systemctl status docker

2.3 验证版本

docker --version

预期输出

Docker version 20.10.20, build 99e3ed8919

2.4 验证镜像加速

docker info | grep "Registry Mirrors"

预期输出

Registry Mirrors:

三、配置优化建议

3.1 存储驱动优化

# 确认当前存储驱动(默认应为overlay2)
docker info | grep "Storage Driver"

# 如需强制指定(通常无需手动配置)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "storage-driver": "overlay2"
}
EOF
sudo systemctl restart docker

3.2 资源限制配置

3.2.1 容器级资源限制
docker run -d \
  --name my_container \
  --cpus="1.5" \
  --memory="512m" \
  --memory-swap="1g" \
  nginx:latest
3.2.2 全局默认限制(daemon.json)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "default-ulimits": {
    "nofile": {
      "Name": "nofile",
      "Hard": 65535,
      "Soft": 65535
    }
  }
}
EOF
sudo systemctl restart docker

3.3 网络性能优化

# 修改sysctl参数(需root权限)
sudo tee /etc/sysctl.d/docker.conf <<-'EOF'
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535
EOF
sudo sysctl -p /etc/sysctl.d/docker.conf

四、维护建议

4.1 定期清理

# 清理无用资源
docker system prune -a --volumes

# 手动清理特定镜像
docker rmi $(docker images --filter "dangling=true" -q)

4.2 升级策略

# 查看可升级版本
yum list docker-ce --showduplicates | grep 20.10

# 升级操作
sudo yum update docker-ce docker-ce-cli containerd.io

五、常见问题

Q1:安装旧版本时提示依赖缺失
A:需先安装对应版本的依赖包,例如:

# 示例:安装17.03.3版本所需依赖
sudo yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.3.ce-1.el7.noarch.rpm

Q2:镜像加速未生效
A:检查步骤:

  1. 确认daemon.json语法正确
  2. 执行systemctl restart docker后等待1-2分钟
  3. 使用docker info验证配置
  4. 测试拉取镜像速度:time docker pull ubuntu:latest
  5. 终结方案,删除原有数据/data/docker/,重启启动新的docker

Q3:容器启动报"No space left on device"
A:执行以下清理操作:

# 清理graphdriver残留
docker system prune -a --volumes

# 清理overlay2存储(谨慎操作)
rm -rf /data/docker/overlay2/*
systemctl restart docker

六、结语

通过以上配置,你可以在CentOS 7系统上获得一个高效稳定的Docker运行环境。建议根据实际业务需求调整参数,并定期关注Docker官方安全更新。
在这里插入图片描述
如果你觉得这篇文章对你有帮助,不妨点个赞👍,或者分享给你的朋友们吧!你的支持是我持续创作的最大动力!


网站公告

今日签到

点亮在社区的每一天
去签到