Docker RPM包本地安装与配置指南
·
1. Docker RPM包本地安装全指南
在Linux系统上通过RPM包安装Docker,是许多企业环境下的标准操作流程。与直接使用yum仓库安装相比,本地RPM安装具有三大不可替代的优势:完全离线部署能力、版本锁定避免自动升级、自定义安装路径配置。本指南将详解从官方源获取DPM包到完成安装的全流程,并针对国内网络环境提供加速方案。
重要提示:RPM安装方式主要适用于CentOS/RHEL/Oracle Linux等基于Red Hat的发行版,Ubuntu/Debian用户应使用deb包
1.1 官方RPM仓库解析
Docker官方为RPM系Linux维护了专门的存储库,其目录结构遵循标准规范。最新稳定版RPM包通常位于:
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
目录结构说明:
7代表CentOS/RHEL 7系列(对应内核3.10+)x86_64为64位架构(ARM设备需用aarch64)stable表示稳定版通道(另有edge和test通道)
国内镜像源推荐使用阿里云或腾讯云的Docker仓库,速度提升显著:
https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/
1.2 核心组件下载清单
完整Docker环境需要以下RPM包(以v24.0.6为例):
- 主引擎包:
docker-ce-24.0.6-1.el7.x86_64.rpm - CLI工具包:
docker-ce-cli-24.0.6-1.el7.x86_64.rpm - 容器运行时:
containerd.io-1.6.22-3.1.el7.x86_64.rpm - 组件依赖包:
docker-ce-rootless-extras-24.0.6-1.el7.x86_64.rpm
下载示例(使用wget):
wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-24.0.6-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-24.0.6-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.6.22-3.1.el7.x86_64.rpm
2. 系统准备与依赖处理
2.1 前置条件检查
执行以下命令验证系统环境:
# 内核版本检查(需≥3.10)
uname -r
# 存储驱动支持
ls -l /sys/fs/cgroup/
# 设备映射检查
ls -l /dev/mapper/
常见问题处理:
- 若出现
device-mapper相关错误,需安装:yum install -y device-mapper-persistent-data lvm2 - 对于SELinux阻止问题,建议临时设置为permissive模式:
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
2.2 依赖包解决方案
离线环境下需提前准备这些依赖包:
libcgrouplibseccompcontainer-selinuxpigz
可通过以下命令下载依赖(需联网):
repotrack -a x86_64 -p ./docker-deps libcgroup libseccomp container-selinux pigz
3. 安装流程详解
3.1 顺序安装RPM包
必须按以下顺序安装:
rpm -ivh containerd.io-*.rpm
rpm -ivh docker-ce-cli-*.rpm
rpm -ivh docker-ce-*.rpm
rpm -ivh docker-ce-rootless-extras-*.rpm
关键参数说明:
--nodeps:跳过依赖检查(仅在确认依赖已满足时使用)--force:覆盖安装现有版本--test:模拟安装过程(测试阶段推荐)
3.2 服务配置优化
编辑配置文件 /etc/docker/daemon.json :
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"storage-driver": "overlay2",
"registry-mirrors": [
"https://registry.cn-hangzhou.aliyuncs.com"
]
}
启动服务并设置开机自启:
systemctl daemon-reload
systemctl enable --now docker
验证安装:
docker info | grep -E 'Version|Storage|Cgroup'
4. 典型问题排查指南
4.1 依赖冲突解决
当出现 package xxx is already installed 错误时,按以下步骤处理:
- 查询冲突包:
rpm -qa | grep -E 'docker|containerd' - 移除旧版本:
rpm -e --nodeps 包名 - 重新执行安装
4.2 存储驱动问题
如果 docker info 显示 Storage Driver: devicemapper ,需强制使用overlay2:
- 停止服务:
systemctl stop docker - 清理旧数据:
rm -rf /var/lib/docker/* - 修改启动参数:
mkdir -p /etc/systemd/system/docker.service.d cat > /etc/systemd/system/docker.service.d/override.conf <<EOF [Service] ExecStart= ExecStart=/usr/bin/dockerd --storage-driver=overlay2 EOF
4.3 防火墙配置
确保防火墙放行必要端口:
firewall-cmd --permanent --add-port=2375/tcp
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --reload
5. 高级维护技巧
5.1 版本升级方案
- 下载新版本RPM包
- 执行升级而非安装:
rpm -Uvh docker-ce-*.rpm - 保留原有配置:
rpm --upgrade --preserve-config
5.2 完全卸载步骤
彻底清除Docker环境:
systemctl stop docker
rpm -qa | grep docker | xargs rpm -e --nodeps
rm -rf /var/lib/docker /etc/docker
rm -f /etc/systemd/system/docker.service.d/*
5.3 离线环境部署
制作完整离线包:
mkdir docker-offline
repotrack -a x86_64 -p ./docker-offline docker-ce docker-ce-cli containerd.io
tar czvf docker-offline.tar.gz docker-offline
在目标机器恢复:
tar xzvf docker-offline.tar.gz
cd docker-offline
yum localinstall -y --disablerepo=* *.rpm
更多推荐
所有评论(0)