Docker 更新版本
Docker 更新版本
原来版本 1.10
更新后的版本 19.03.1
更新 Docker 版本需要注意的问题:
注意系统是否支持新版本的储存驱动。
19.03.01 版本默认使用的储存驱动是 overlay2。
overlay2 存储驱动使用需要满足以下条件:
一、暂停原有的容器并导出
Docker 版本更新:
暂停所有docker, 现有的镜像和容器都导出成 tar包
导出容器
docker export container id -o d.tar
导出镜像
docker image save container -o a.tar
二、移除原来的 Docker 并安装新的版本
移除老版本的 Docker
yum remove docker \
docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
安装新版本 Docker
yum-utils 提供了命令 yum-config-manager,device-mapper-persistent-data和lvm2由需要 devicemapper存储驱动程序。
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置 yum 源为 稳定的版本
阿里的源,国内使用较快
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
官方的源(国内使用比较慢)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
生成缓存
yum makecache
如果要安装指定的版本
yum list docker-ce --showduplicates | sort -r
填入版本号到下面的命令(docker-ce-19.03.0-3.el7)
yum install docker-ce- docker-ce-cli- containerd.io
安装最新稳定版本 Docker CE
yum install docker-ce docker-ce-cli containerd.io
三、 使用原来的数据目录、或者 创建新的数据目录。
使用原来的数据目录
使用之前的数据目录,也就是之前版本的数据目录,这样 之前的镜像和容器就可以不用再导入了,直接使用就行了。
指定之前的 储存目录,我们之前 Docker 的储存目录是 /opt/docker.
cat << EOF >>/etc/docker/daemon.json
{
"data-root": "/opt/docker"
}
EOF
启动docker
systemctl start docker
docker images # 我们可以看到之前的镜像都存在
docker info # 我们可以看到
更新后改变的东西
日志驱动之前是 journal 现在是 logfile
数据目录:
[root@iz23nb5ujp69 docker]# ls -l
total 48
drwx------ 2 root root 4096 Aug 6 15:58 builder
drwx------ 4 root root 4096 Aug 6 15:58 buildkit
drwxrwxrwx 5 root root 4096 Aug 6 16:31 containers
drwxrwxrwx 5 root root 4096 Oct 13 2016 devicemapper
drwxrwxrwx 3 root root 4096 Oct 13 2016 image
drwxrwxrwx 3 root root 4096 Oct 13 2016 network
drwx------ 4 root root 4096 Aug 6 15:58 plugins
drwx------ 2 root root 4096 Aug 6 16:41 runtimes
drwx------ 2 root root 4096 Aug 6 15:58 swarm
drwx------ 2 root root 4096 Aug 6 16:41 tmp
drwxrwxrwx 2 root root 4096 Oct 13 2016 trust
drwxrwxrwx 2 root root 4096 Aug 6 15:58 volumes
原来的 1.10版本 是 默认驱动 devicemapper ,使用上一个版本的 Docker 目录的话,会使用上一个版本的默认的驱动(为了兼容),如果使用的是新的目录,则会使用官方当前版本默认的储存驱动和日志引擎。
创建新的目录,导入镜像
使用新的数据目录 /opt/docker-ce。
cat << EOF >>/etc/docker/daemon.json
{
"data-root": "/opt/docker-ce"
}
EOF
systemctl restart docker
导入镜像
docker image import jenkins.tar fy:jenkins
导入的镜像会使用Docker 的默认的驱动,也就是 overlay2,会使用默认的日志驱动。不管原来镜像使用的什么驱动,导入后会使用当前的默认储存驱动。
四、更新过程中遇到的问题
我们按照上面步骤更新,使用的是创建新的目录的方式。当我们启动我们的 Jenkins 容器后,执行构建后,发现有下面的报错。
1565084429253
升级之后的问题。删除文件夹报错。命令是没有问题的。
进入容器我执行下面的命令,也是报错。
[root@491c264aea0d target]# rm -rf ./*
rm: cannot remove `./classes/com/ugou88/wx/interceptor': Invalid argument
rm: cannot remove `./classes/com/ugou88/wx/i/controller': Invalid argument
问题,很有可能是驱动导致的,就是储存驱动。
我们升级后 Docker 默认使用的驱动是 overlay2,那么如果要使用该驱动需要满足以下条件。
overlay2`Docker CE和Docker EE 17.06.02-ee5及更高版本支持该驱动程序,是推荐的存储驱动程序。
需要 Linux 内核版本在 4.0更高的版本或者使用 RHEL/CentOs 版本号大于 3.10.0-514。
在overlay和overlay2驱动程序支持xfs的文件系统,但需要d_type=true启用。
使用xfs_info验证ftype选项设置为1。要xfs正确格式化 文件系统,请使用该标志-n ftype=1。
我们使用的 ext4 文件系统,Docker 的版本也高于 17.06.02,但是我们的 Centos 版本号是 低于 3.10.0-514 的, 所以我推测是由于 版本号过低,导致储存驱动使用不了,我们对系统进行快照后,进行升级内核。
升级内核之后,我们重启主机,发现是可以正常使用的。
作者:理想三旬
出处:https://www.cnblogs.com/operationhome/p/11322150.html
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云服务器价格表_官网报价(精)
阿里云ECS云服务器租用价格组成包含三部分:即云服务器配置费用+磁盘价格+网络宽带价格。 需要注意的是:某些地域会有一些优惠折扣,不同地域宽带价格也有所差异,所以不同地域节点的云服务器价格也有所不同,云服务器详细价格以阿里云价格计算器为收费标准,包含不同计费模式下的云服务器收费价格等信息: 详细精准报价请参考【阿里云官网价格计算器】 阿里云官方建站帮助文档: 阿里云官方建站帮助文档 阿里云官网产品价格表:阿里云官网产品价格表 阿里云产品学习路径:阿里云产品学习路径 ps: 针对阿里云ECS服务器的活动,目前阿里云有两大活动,即:1. 入门级云服务器2折优惠 和 2. 企业级高性能云服务器2折优惠,其它干货分享,阿里云2000元产品官方代金券,可以减少建站成本,具体用法看看这篇教程:阿里云代金券使用教程 一:实例配置价格表实例配置价格表 阿里云服务器配置分为入门级配置和企业级配置,云服务器的配置计费方式可以按量(小时)计费、按月计费或者年付等计费方式,本文中的价格表是以非Windows、专有网络、支持I/O优化为例: 1、入门级规格配置价格表实例规格 vCPU 内存(GB) 按量(小时)...
- 下一篇
阿里云通用网络增强型sn2ne云服务器配置性能评测
阿里云通用网络增强型sn2ne云服务器是企业级高性能云服务器规格,sn2ne是100%独占资源的云服务器,码笔记分享通用网络增强型sn2ne实例的配置、性能评测及优惠信息: 一:通用网络增强型sn2ne实例特点 阿里云通用网络增强型sn2ne云服务器属于企业级高性能云服务器,个人用户和企业用户均可以购买。sn2ne实例与突发性能t5实例不同,sn2ne实例100%独占资源,适合企业级应用、高网络收发包、视频弹幕、计算集群等应用场景。 详细可以参考:实例规格族之sn1ne实例官方详解 - 阿里云 sn2ne实例的CPU处理器型号、网络性能及支持情况如下表所示: sn2ne实例支持特性 sn2ne实例CPU/内存/网络性能 I/O优化实例支持IPv6仅支持SSD云盘和高效云盘 处理器与内存配比为1:4超高网络PPS收发包能力处理器:2.5 GHz主频的Intel ® Xeon ® E5-2682 v4(Broadwell)或Platinum 8163(Skylake),计算性能稳定实例网络性能与计算规格对应(规格越高网络性能越强) 二:sn2ne云服务器的配置规格及优惠价格表 实例规格 v...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池