CentOS8.5下安装docker
为什么这么简单的东西还要记录?
只能说都2024年了,还在闭关锁国🤣
本来分分钟一个一键脚本的事情,现在每次要搞七搞八的折腾半天😅
环境要求
- 操作系统
- CentOS 8 或更高版本(64 位)
- 推荐内核版本 ≥ 3.10(检查命令:
uname -r
)
- 依赖工具
yum
包管理器(默认已安装)curl
或wget
(用于下载文件)
安装步骤
前期准备工作
备份原有的镜像源配置文件
cd /etc/yum.repos.d
mkdir -p bak
cp *.repo bak/
rm -rf *.repo
下载新的镜像源配置文件
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
清理并生成缓存
dnf clean all
dnf makecache
卸载旧版本 Docker(如有)
sudo yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装依赖工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加 Docker 官方仓库
# 使用官方源(国际网络)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 或使用阿里云镜像加速(国内推荐)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker引擎
# 安装最新稳定版
sudo yum install -y --allowerasing docker-ce docker-ce-cli containerd.io
使用 --allowerasing
选项来允许卸载旧的、冲突的软件包否则会出现 runc
版本相关的依赖冲突问题,这个错误的原因是 CentOS 8 的模块过滤导致某些版本的 runc
被排除,而 Docker 和 containerd.io
需要与特定版本的 runc
兼容。
启动 Docker 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker