centos7安装docker时,yum命令报错
问题描述
当我需要在centOS7中安装docker时,会使用到yum命令,例如sudo yum install -y yum-utils。只要使用到yum命令时,就会报出如下错误:
[root@localhost ~]# yum install wget
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http😕/mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误”
解决步骤
我们希望以后只用阿里的镜像yum源,因此,要修改的就是baseurl,而必须注释掉mirrorlist。
因此,先备份一下,虽然并不会用到,因为请求是不通的。
备份一下
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载阿里云 CentOS 7 镜像源配置文件
sudo curl -o /etc/yum.repos.d/Centos-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
删除除阿里及备份外的所有cent源文件
如果用的finalshell等工具可以直接找到/etc/yum.repos.d/下把除了CentOS-Base.repo和CentOS-Base.repo.backup都删了
find . -maxdepth 1 -type f -name 'CentOS-*' ! -name 'CentOS-Base.repo.backup' -exec rm {} \;
清除旧的 YUM 缓存
sudo yum clean all
创建新的 YUM 缓存
sudo yum makecache
这一步是为了让 YUM 根据新的仓库配置文件创建新的缓存,这样在执行 yum update 或 yum install 命令时,系统会从阿里云的镜像源下载软件包。
安装Docker
1.卸载旧版
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
docker-selinux
2.配置Docker的库
首先要安装一个yum工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
安装成功后,执行命令,配置Docker的yum源(已更新为阿里云源):
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
更新yum,建立缓存
sudo yum makecache fast
3.安装Docker
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4.启动和校验
# 启动Docker
systemctl start docker
# 停止Docker
systemctl stop docker
# 重启
systemctl restart docker
# 设置开机自启
systemctl enable docker
# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps
5.配置镜像加速
加速地址可以百度搜最新的
# 创建目录
mkdir -p /etc/docker
# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://mirrors.tuna.tsinghua.edu.cn",
"http://mirrors.sohu.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://ccr.ccs.tencentyun.com",
"https://docker.m.daocloud.io",
"https://docker.awsl9527.cn"
]
}
EOF
# 重新加载配置
systemctl daemon-reload
# 重启Docker
systemctl restart docker