yum安装docker报 No package docker available错误

本文详细介绍如何在CentOS 6及CentOS 7上安装Docker,包括安装过程、启动服务、测试安装是否成功等步骤。此外还提供了Docker的一些常用命令,如拉取镜像、查看镜像、启动和停止容器等。

解决方案:

yum install epel-release

然后再安装

CentOS6

yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm 
  
yum install docker-io 

 

CentOS7

CentOS7 系统 CentOS-Extras 库中已带 Docker,可以直接安装:

yum install docker

 

安装之后启动 Docker 服务,并让它随系统启动自动加载

service docker start 
  
chkconfig docker on #Docker 在服务器启动时启动

 

测试是否安装成功:

docker version

 

重启docker:

service docker restart

运行下面的命令,将 image 文件从仓库抓取到本地

docker pull library/hello-world

常用命令

除过以上我们使用的Docker命令外,Docker还有一些其它常用的命令

拉取docker镜像

docker pull image_name

查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:

docker images

删除镜像

docker rmi  docker.io/tomcat:7.0.77-jre7   或者  docker rmi b39c68b7af30

查看当前有哪些容器正在运行

docker ps

查看所有容器

docker ps -a

启动、停止、重启容器命令:

docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id

后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:

docker attach container_name/container_id

删除容器的命令:

docker rm container_name/container_id

删除所有停止的容器:

docker rm $(docker ps -a -q)

查看当前系统Docker信息

docker info

从Docker hub上下载某个镜像:

docker pull centos:latest
docker pull centos:latest

查找Docker Hub上的nginx镜像

docker search nginx

执行docker pull centos会将Centos这个仓库下面的所有镜像下载到本地repository。

参考

Docker — 从入门到实践
Docker系列之一:入门介绍
Docker 入门教程

 Docker(一):Docker入门教程

转载于:https://www.cnblogs.com/liaojie970/p/8669432.html

<think>嗯,用户现在遇到了使用yum安装docker-ce、docker-ce-cli和containerd.io时出现“No package available”的错误。我之前已经给出过解决repodata过期的方案,但用户现在的问题更具体,是找不到软件包。这可能是因为用户没有正确配置Docker的仓库,或者仓库中没有对应版本的包。 首先,我需要回忆一下常见的yum安装问题。用户可能没有添加Docker的官方仓库,所以系统默认的仓库里没有这些包。Docker CE不在CentOS默认的仓库中,必须手动添加Docker的仓库源。另外,用户可能添加了仓库,但仓库配置有误,比如baseurl不正确,或者启用了错误的版本。 接下来,用户可能按照之前的步骤配置了镜像源,但可能使用的是国内镜像,而镜像同步不及时,导致某些包缺失。或者,用户的操作系统版本与仓库中的包不兼容,比如CentOS 7和CentOS 8的仓库路径不同,如果用户系统是CentOS 7,但配置成了CentOS 8的仓库地址,就会找不到包。 另外,containerd.io有时可能不在Docker的仓库中,可能需要启用额外的仓库,比如EPEL。或者包名可能有变化,需要确认正确的包名。 用户的上一个问题涉及到repodata过期,所以可能用户已经清理了缓存,但未正确重建,或者仓库配置错误导致无法获取元数据。现在的问题更偏向于仓库配置或包存在的性问题,而不仅仅是元数据过期。 需要分步骤检查:首先确认Docker仓库是否被正确添加,检查/etc/yum.repos.d/目录下的docker-ce.repo文件是否存在且配置正确。然后检查仓库是否启用,是否指定了正确的OS版本和架构。接着,可能需要清除缓存并重新生成。如果仓库配置正确,但依然找不到包,可能需要检查仓库中是否存在对应的包版本,或者是否有拼写错误。此外,可能需要安装EPEL仓库来获取containerd.io。 另外,用户可能使用的CentOS版本与Docker支持的版本不一致,比如CentOS Stream可能存在问题。或者用户启用了多个仓库,导致冲突,需要禁用其他仓库仅启用Docker仓库进行测试。 需要提醒用户检查仓库配置中的变量,如$releasever是否正确替换,有时候这个变量可能被错误解析,导致仓库URL不正确。手动替换为具体的版本号,如7或8,可以解决这个问题。 总结解决方案步骤:1. 确认Docker仓库正确配置;2. 检查仓库是否启用;3. 清除缓存并重建;4. 检查包名是否存在;5. 处理变量替换问题;6. 启用EPEL仓库;7. 检查系统版本兼容性;8. 使用特定版本安装。</think>### 分步解决方案:解决`yum install docker-ce`错`No package available` --- #### **问题本质** 该错误表明系统未正确配置Docker官方仓库,或仓库元数据未包含目标软件包。以下是系统性排查方案: --- ### 一、验证仓库配置(核心步骤) #### 1. 检查Docker仓库文件是否存在 ```bash # 查看仓库配置文件 ls -l /etc/yum.repos.d/docker-ce*.repo # 若无输出,需手动添加官方仓库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ``` #### 2. 确认仓库路径有效性 ```bash # 提取baseurl并测试网络连通性 REPO_URL=$(grep baseurl /etc/yum.repos.d/docker-ce.repo | head -1 | cut -d= -f2) curl -I $REPO_URL/repodata/repomd.xml ``` *关键判断*: - 若返回`HTTP/2 200`:仓库路径有效 - 若返回`404`:系统版本与仓库路径不匹配(重点排查项!)[^1] --- ### 二、修复版本不匹配问题(常见故障点) #### 1. 手动修正`$releasever`变量 ```bash # 查看当前系统发行版本 rpm -E %{rhel} # CentOS 7返回7,CentOS 8返回8 # 修改docker-ce.repo文件 sudo sed -i "s/\$releasever/$(rpm -E %{rhel})/g" /etc/yum.repos.d/docker-ce.repo ``` *原理*: 部分CentOS系统无法自动解析`$releasever`变量,需手动替换为具体数值[^2] #### 2. 验证修正后的仓库路径 ```bash # 示例:CentOS 7的正确路径应包含7/x86_64 grep baseurl /etc/yum.repos.d/docker-ce.repo ``` *正确示例*: ``` baseurl=https://download.docker.com/linux/centos/7/x86_64/stable ``` --- ### 三、强制重建元数据缓存 ```bash # 清理旧缓存 sudo yum clean all --disablerepo=* --enablerepo=docker-ce-stable # 重建指定仓库的元数据 sudo yum makecache fast --disablerepo=* --enablerepo=docker-ce-stable ``` --- ### 四、指定版本安装(规避依赖冲突) ```bash # 查询可用版本列表 sudo yum list docker-ce --showduplicates --disablerepo=* --enablerepo=docker-ce-stable # 安装特定版本(示例) sudo yum install docker-ce-3:24.0.7-1.el7 docker-ce-cli-1:20.10.12-3.el7 containerd.io-1.6.21-3.1.el7 ``` *注意*: - 必须保持`docker-ce`、`docker-ce-cli`、`containerd.io`版本兼容性 - 推荐使用`3:24.0.x`系列作为稳定版本[^3] --- ### 五、处理containerd.io依赖问题 #### 1. 添加EPEL仓库(如缺少containerd.io) ```bash # CentOS 7 sudo yum install epel-release -y # CentOS 8 sudo dnf install epel-release -y ``` #### 2. 从官方源安装containerd.io ```bash # 直接下载RPM包安装 wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.6.21-3.1.el7.x86_64.rpm sudo rpm -ivh containerd.io-*.rpm ``` --- ### 六、深度排查流程 #### 1. 检查软件包是否存在 ```bash # 使用repoquery工具验证 sudo yum install yum-utils -y repoquery --disablerepo=* --enablerepo=docker-ce-stable docker-ce ``` #### 2. 查看仓库元数据 ```bash # 解析repomd.xml验证包索引 REPO_PATH=$(grep baseurl /etc/yum.repos.d/docker-ce.repo | cut -d= -f2) curl $REPO_PATH/repodata/repomd.xml | grep docker-ce ``` --- ### 附:典型配置错误修正 #### 错误案例:CentOS 8使用`7/x86_64`仓库 *修正方法*: ```bash # 修改docker-ce.repo中的路径 sudo sed -i 's/7\/x86_64/8/x86_64/g' /etc/yum.repos.d/docker-ce.repo ``` #### 错误案例:未启用gpgcheck *解决方案*: ```bash # 临时禁用签名验证 sudo yum install docker-ce -y --nogpgcheck ``` --- ### 七、替代安装方案(若仍失败) #### 使用官方脚本自动安装 ```bash curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值