摘要
本文详述 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:检查步骤:
- 确认
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官方安全更新。
如果你觉得这篇文章对你有帮助,不妨点个赞👍,或者分享给你的朋友们吧!你的支持是我持续创作的最大动力!