Centos升级docker后启动容器报错“unknown or invalid runtime name”

前言

  1. 操作系统为centos
  2. docker原来的版本为1.31.1,升级后为20
  3. 结尾有升级docker的教程
  4. 听说图片能凑字数,就截图贴了

插播一个问题记录

重装docker之后试试这个,折腾一上午
https://blog.csdn.net/weixin_43448598/article/details/109412104


我是分割线

加入后面出现无法强制删除镜像文件时,或者报错(无法创建容器)
按照如下解决
在这里插入图片描述

1. 报错原因

“因为Docker的默认运行时环境runc被升级或替换所导致的。”

2. 解决过程

在这里插入图片描述

【提问】:

我在升级docker后,无法启动容器,报错信息如下,请问我该如何做
“”Error response from daemon: unknown or invalid runtime name: docker-runc“

【回答】:

这个问题通常是因为Docker的默认运行时环境runc被升级或替换所导致的。

为了解决这个问题,你可以尝试以下步骤:

  1. 确认是否已经安装了新的运行时环境,例如“containerd”或“cri-o”等,以取代原来的runc。如果是,则应该相应地更改Docker的运行时环境。

  2. 如果未更改Docker运行时环境,可以尝试重新安装Docker,以便恢复缺失的runc运行时环境。

  3. 如果重新安装Docker后仍然出现问题,则可以尝试使用旧版本的Docker,这通常可以通过将docker的版本降低到之前的版本来实现。

  4. 最后,你还可以尝试升级或更新docker-compose,因为它也可能会影响Docker运行时环境的配置。

希望这些方法能够帮助你解决这个问题。如果问题仍然存在,请提供更多的详细信息,以便我们提供更准确的帮助。


![在这里插入图片描述](https://img-blog.csdnimg.cn/58defdf9c74e4850aeed966a64a57921.png)

【提问】:

能将步骤1具体化一点吗,我现在是centos系统

【回答】:

好的,下面是针对CentOS系统的具体步骤:

  1. 确认已安装新的运行时环境

使用以下命令来检查是否已在CentOS系统上安装了新的运行时环境:

systemctl status containerd

如果输出的结果显示containerd服务已经运行,则说明containerd已经安装在系统中。

如果未安装containerd,可以通过以下命令安装:

yum install -y containerd.io
  1. 更改Docker的运行时环境

如果你已经确认新的运行时环境已经安装在你的系统中,那么需要更改Docker的配置,以便Docker可以使用新的运行时环境。

编辑Docker的配置文件/etc/docker/daemon.json,添加以下内容:(没有该文件就新建一个)

{
  "default-runtime": "containerd",
  "runtimes": {
    "containerd": {
      "path": "/usr/bin/containerd"
    }
  }
}

保存文件并重启Docker:

systemctl restart docker

现在,Docker应该能够正常使用新的运行时环境了。

请注意,如果你使用的是其他运行时环境,例如cri-o等,你需要相应地更改default-runtimeruntimes的值。

希望这可以帮助你解决问题。如果你需要更多的帮助,请告诉我。

结尾

另附上centos升级docker教程
原文传送门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值