背景:

因为需要安装新的容器,所以需要升级docker,从1.13.1 版本升级到 20.10.9。升级之后原有的容器依然可以正常启动运行,数据没有发生丢失情况。

1、卸载原有版本.
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine


2、安装 yum-utils 包 ,设置存储库

yum-utils 包(它提供 yum-config-manager 实用程序),这里用的是阿里云的镜像地址.

sudo yum install -y yum-utils
sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum update


3、查询目前的yum源里的docker 版本

下面会列出当前可用的版本,如果查询的结果是空,那么就说明上一步的yum源没更新成功,需要检查镜像地址的设置和更新是否成功.

sudo yum list docker-ce --showduplicates | sort -r


4、安装新版的docker
  • 如果只是安装最新版的docker,那么运行
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

  • 如果要安装指定版本,使用完全限定的包名安装特定版本,包名(docker-ce)加上版本字符串(第2列) ,从第一个冒号(:)开始,一直到第一个连字符,用连字符(-)分隔。例如,docker-ce-18.09.1。
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin

这个命令安装了 Docker,但是没有启动 Docker。它还创建了一个 docker 组,但是默认情况下它不会将任何用户添加到组中。


5、启动docker
 sudo systemctl start docker

6、解决不兼容问题

到这步本来已经结束了,但升级docker 版本之后,原本的容器可能会因为不兼容导致无法启动。会报错:Error response from daemon: Unknown runtime specified docker-runc

这种情况下,先备份原本的容器信息

cp -r /var/lib/docker/containers/ /var/lib/docker/bkcontainers

然后更改/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

再去启动对应的容器,就不会再报错了


7、最后看一下目前的docker 版本,完美
docker version

参考文章:
docker 升级后或者重装后,启动容器提示:Error response from daemon: Unknown runtime specified docker-runc…
install Docker Engine on CentOS
CentOS Docker 安装

Centos 升级docker 至最新版本或指定版本相关推荐

  1. centos7.x 升级svn版本到指定版本(1.10)

    centos7.x 升级svn版本到指定版本 为什么要升级? 在测试过程中为了进行代码diff,需要使用svn的一些命令来进行自动化操作,发现本地和服务器的版本不一致,且服务器svn client的版 ...

  2. Docker安装稳定版及指定版本

    文章目录 安装最新稳定版 安装指定版本 安装最新稳定版 # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persis ...

  3. Cloudera Manager安装之利用parcels方式安装单节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(四)...

    前期博客 Cloudera Manager安装之Cloudera Manager 5.3.X安装(三)(tar方式.rpm方式和yum方式) 说在前面的话(看清楚就好!!!) 我这篇博客,是两种方式都 ...

  4. Cloudera Manager安装之利用parcels方式安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(五)...

    参考博客 Cloudera Manager安装之利用parcels方式安装单节点集群  Cloudera Manager安装之Cloudera Manager 5.3.X安装(三)(tar方式.rpm ...

  5. Cloudera Manager安装之利用parcels方式(在线或离线)安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(Ubuntu14.04)(五)...

    如果大家,在启动的时候,比如遇到如下问题,则 明明已经授权了啊,怎么被拒绝,纳尼??? 解决办法 然后,再来这样,就可以了. 注意,在此之前. ubuntucmbigdata1机器上,则需要执行 bi ...

  6. linux docker升级,CentOS上面升级Docker到最新版本

    一般我们用yum安装的docker版本是1.6或者1.7,我们要把docker升级到最新的版本. 首选我们验证一下系统里的docker版本[root@xiaohuai ~]# docker -v Do ...

  7. npm升级到最新版本、指定版本

    npm 升级到最新版本 npm install -g npm npm升级到指定版本 //比如升级到5.6.0 npm install -g npm@5.6.0 注意命令中间一个空格,多了会报错 npm ...

  8. Centos7.x 升级svn版本到指定版本

    为什么要升级? 在测试过程中为了进行代码diff,需要使用svn的一些命令来进行自动化操作,发现本地和服务器的版本不一致,且服务器svn client的版本过低,导致执行命令报错.(报错没有截图,命令 ...

  9. CentOS 6.9/7通过yum安装指定版本的JDK/Maven

    说明:通过yum好处其实很多,环境变量不用配置,配置文件放在大家都熟悉的地方,通过rpm -ql xxx可以知道全部文件的地方等等. 一.安装JDK(Oracle JDK 1.8) # wget -- ...

最新文章

  1. 中国×××的“超级无敌”玩法
  2. PHP向第三方接口发送json数据
  3. 基于 Asio 的 C++ 网络编程
  4. 【jzoj3734,Usaco2014Open银组】双导航(gpsdual)
  5. 国产主可控的嵌入式仿真测试软件SkyEye与可信编译器L2C的核心翻译介绍
  6. 获取Authorize.Net Transaction Key ( Getting Your Authorize.Net Transaction Key )
  7. 全面解析Linux 内核 3.10.x - 如何开始
  8. 水彩手绘中华美食PNG素材,提高海报设计效率!
  9. [原创]软件测试工具简介及下载地址(不定时更新)
  10. Matplotlib库入门
  11. oracle浪潮优派,检查数据库的CPU和PSU补丁信息
  12. Photoshop 换脸大法
  13. Android音频系统
  14. php 不报notice错误,PHP新手NOTICE错误常见解决方法_PHP教程
  15. 精致生活品味相伴,Barsetto百胜图BAC025B胶囊咖啡机测评
  16. 易车与汽车之家俩大巨头对决
  17. 《关于TCP SYN包的超时与重传》——那些你应该知道的知识(四)
  18. 虚拟服务器的好处与坏处,虚拟主机有什么坏处
  19. P4_toturial练习1问题:ModuleNotFoundError: No module named ‘p4.tmp‘
  20. 『安全工具』注入神器SQLMAP

热门文章

  1. 数学建模之Python-BP神经网络算法分类模型
  2. 关于css文字超出显示省略号失效
  3. 汤森路透分析新冠肺炎为中国外贸带来的三大风险与两大机遇
  4. MySQL数据库的条件查询
  5. Android RatingBar结合属性动画,快速实现 QQ群男女比例分布图效果
  6. 2021年塔式起重机司机试题及解析及塔式起重机司机模拟考试
  7. java构造方法命名_Java命名规范
  8. 日志结构化,SQL来查询
  9. Echarts - 将图表网格线设置成虚线(图表横线网格)
  10. msvcr110.dll下载(适用性强)