centos7中使用yum安装docker报错解决方法
source link: https://jasonkayzk.github.io/2022/08/14/centos7%E4%B8%AD%E4%BD%BF%E7%94%A8yum%E5%AE%89%E8%A3%85docker%E6%8A%A5%E9%94%99%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
服务器上的 Docker 是 1.13 版本的有点老了,于是打算升级一下;
结果发现加入了 Docker 源之后使用 yum 安装报错了…,这里总结一下;
centos7中使用yum安装docker报错解决方法
安装Docker
首先卸载旧版本:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
然后按照软件源:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
查看可用版本:
yum list docker-ce --showduplicates | sort -r
至此步骤都是正常的;
当使用 yum 命令安装时:
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
This system is not registered with an entitlement server. You can use subscription-manager to register.
https://yum.dockerproject.org/repo/main/centos/7/repodata/repomd.xml: [Errno
14] HTTPS Error 404 - Not Found
Trying other mirror.
...
failure: repodata/repomd.xml from dockerrepo: [Errno 256] No more mirrors to try.
https://yum.dockerproject.org/repo/main/centos/7/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
原因是 CentOS 7 中的链接解析已经被废弃了;
可以尝试替换:/etc/yum.repos.d/docker-ce.repo
文件中的 $releasever => 7
解决:
/etc/yum.repos.d/docker-ce.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
- baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
+ baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
替换之后便可安装!
设置为开机启动:
systemctl enable docker
systemctl start docker
查看启动状态:
systemctl status docker
查看版本:
docker version
旧版本Docker兼容
有部分安装的docker版本太旧,对docker进行版本升级后,启动旧版本创建的容器时遇到这个错误:
docker start 容器ID
Error response from daemon: Unknown runtime specified docker-runc
当从不兼容的版本升级docker并且升级后无法启动docker容器时会出现这种情况,原因是新旧版本的两个版本命令所在目录不同;
解决方法:
- 更改
/var/lib/docker/containers
目录中的文件参数,把docker-runc
替换为runc
可通过以下命令进行修复:
grep -rl 'docker-runc' /var/lib/docker/containers/ | xargs sed -i 's/docker-runc/runc/g'
注:
grep -rl
:递归搜索目录和子目录,只列出含有匹配的文本行的文件名,而不显示具体的匹配内容;xargs
:衔接执行之前得到的值;总体意思是把
/var/lib/docker/containers
中含有docker-runc
文件搜索出来;并把
docker-runc
字符替换为runc
;
替换完成后重启 Docker:
systemctl restart docker
附录
文章参考:
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK