CentOS 7 安装指定版本 Docker 及镜像加速/配置优化攻略
摘要
本文详述 CentOS 7 系统下安装指定版本 Docker ,涵盖镜像加速配置(实测最快)、存储位置优化、日志轮转等核心配置。
文章目录
- 一、安装指定版本Docker
- 1.1 卸载旧版本(如有)
- 1.2 安装依赖包
- 1.3 添加Docker仓库(推荐阿里云镜像源)
- 1.4 查看可用版本
- 1.5 安装指定版本
- 二、镜像加速配置
- 2.1 镜像加速及配置优化
- 2.2 启动
- 2.3 验证版本
- 2.4 验证镜像加速
- 三、配置优化建议
- 3.1 存储驱动优化
- 3.2 资源限制配置
- 3.2.1 容器级资源限制
- 3.2.2 全局默认限制(daemon.json)
- 3.3 网络性能优化
- 四、维护建议
- 4.1 定期清理
- 4.2 升级策略
- 五、常见问题
- 六、结语
一、安装指定版本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:检查步骤:
- 确认
daemon.json
语法正确 - 执行
systemctl restart docker
后等待1-2分钟 - 使用
docker info
验证配置 - 测试拉取镜像速度:
time docker pull ubuntu:latest
- 终结方案,删除原有数据
/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官方安全更新。
如果你觉得这篇文章对你有帮助,不妨点个赞👍,或者分享给你的朋友们吧!你的支持是我持续创作的最大动力!