Centos 升级docker 至最新版本或指定版本
背景:
因为需要安装新的容器,所以需要升级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 至最新版本或指定版本相关推荐
- centos7.x 升级svn版本到指定版本(1.10)
centos7.x 升级svn版本到指定版本 为什么要升级? 在测试过程中为了进行代码diff,需要使用svn的一些命令来进行自动化操作,发现本地和服务器的版本不一致,且服务器svn client的版 ...
- Docker安装稳定版及指定版本
文章目录 安装最新稳定版 安装指定版本 安装最新稳定版 # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persis ...
- Cloudera Manager安装之利用parcels方式安装单节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(四)...
前期博客 Cloudera Manager安装之Cloudera Manager 5.3.X安装(三)(tar方式.rpm方式和yum方式) 说在前面的话(看清楚就好!!!) 我这篇博客,是两种方式都 ...
- Cloudera Manager安装之利用parcels方式安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(五)...
参考博客 Cloudera Manager安装之利用parcels方式安装单节点集群 Cloudera Manager安装之Cloudera Manager 5.3.X安装(三)(tar方式.rpm ...
- Cloudera Manager安装之利用parcels方式(在线或离线)安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(Ubuntu14.04)(五)...
如果大家,在启动的时候,比如遇到如下问题,则 明明已经授权了啊,怎么被拒绝,纳尼??? 解决办法 然后,再来这样,就可以了. 注意,在此之前. ubuntucmbigdata1机器上,则需要执行 bi ...
- linux docker升级,CentOS上面升级Docker到最新版本
一般我们用yum安装的docker版本是1.6或者1.7,我们要把docker升级到最新的版本. 首选我们验证一下系统里的docker版本[root@xiaohuai ~]# docker -v Do ...
- npm升级到最新版本、指定版本
npm 升级到最新版本 npm install -g npm npm升级到指定版本 //比如升级到5.6.0 npm install -g npm@5.6.0 注意命令中间一个空格,多了会报错 npm ...
- Centos7.x 升级svn版本到指定版本
为什么要升级? 在测试过程中为了进行代码diff,需要使用svn的一些命令来进行自动化操作,发现本地和服务器的版本不一致,且服务器svn client的版本过低,导致执行命令报错.(报错没有截图,命令 ...
- CentOS 6.9/7通过yum安装指定版本的JDK/Maven
说明:通过yum好处其实很多,环境变量不用配置,配置文件放在大家都熟悉的地方,通过rpm -ql xxx可以知道全部文件的地方等等. 一.安装JDK(Oracle JDK 1.8) # wget -- ...
最新文章
- 中国×××的“超级无敌”玩法
- PHP向第三方接口发送json数据
- 基于 Asio 的 C++ 网络编程
- 【jzoj3734,Usaco2014Open银组】双导航(gpsdual)
- 国产主可控的嵌入式仿真测试软件SkyEye与可信编译器L2C的核心翻译介绍
- 获取Authorize.Net Transaction Key ( Getting Your Authorize.Net Transaction Key )
- 全面解析Linux 内核 3.10.x - 如何开始
- 水彩手绘中华美食PNG素材,提高海报设计效率!
- [原创]软件测试工具简介及下载地址(不定时更新)
- Matplotlib库入门
- oracle浪潮优派,检查数据库的CPU和PSU补丁信息
- Photoshop 换脸大法
- Android音频系统
- php 不报notice错误,PHP新手NOTICE错误常见解决方法_PHP教程
- 精致生活品味相伴,Barsetto百胜图BAC025B胶囊咖啡机测评
- 易车与汽车之家俩大巨头对决
- 《关于TCP SYN包的超时与重传》——那些你应该知道的知识(四)
- 虚拟服务器的好处与坏处,虚拟主机有什么坏处
- P4_toturial练习1问题:ModuleNotFoundError: No module named ‘p4.tmp‘
- 『安全工具』注入神器SQLMAP