红联Linux门户
Linux帮助

Docker.v1.12升级到v1.13.0正式版

发布时间:2017-01-28 09:43:50来源:linux网站作者:Mungo
Docker v1.13.0 正式版发布了。
重要信息:在 Docker 1.13 中,与在 Docker 1.12 中引入的实验版本相比,管理插件 api 发生了变化.在升级到Docker 1.13 之前,必须卸载使用 Docker 1.12 安装的插件。可通过 docker plugin rm 命令卸载插件.
如果已经升级到 Docker 1.13 而不卸载先前安装的插件,则当 Docker 守护程序启动时,可能会看到此消息.
Error starting daemon: json: cannot unmarshal string into Go value of type types.PluginEnv
要手动删除所有插件并解决此问题,请执行以下步骤:
1.从 /var/lib/docker/plugins/ 中删除 plugins.json
2.重新启动 Docker,验证 Docker 守护程序启动时是否有错误
3.重新安装插件
Docker 1.13 有一千四百多个 issue/pull request,五千多个 commits,是 Docker 历史上最高的发布版本,这并不是一个简单的小版本变化,里面有大量的更新.具体的内容可以查看更新说明(https://github.com/docker/docker/releases/tag/v1.13.0).
 
Top 10 新增功能 | New Features
1.正式支持服务栈: docker stack
2.正式支持插件:docker plugin
3.添加在 Swarm 集群环境下对密码、密钥管理的 secret 管理服务:docker secret
4.增加 docker system 命令
5.可以直接使用 docker-compose.yml 进行服务部署
6.添加 docker service 滚动升级出故障后回滚的功能
7.增加强制再发布选项 docker service update –force
8.允许 docker service create 映射宿主端口,而不是边界负载均衡网络端口
9.允许 docker run 连入指定的 swarm mode 的 overlay 网络
10.解决网络docker-engine apt/yum源的问题
 
升级到v1.13.0
卸载旧版本
首先需要卸载到已有的版本.
sudo apt-get purge docker.io
Docker.v1.12升级到v1.13.0正式版
卸载过程中会提示/etc/docker目录非空,这个目录下有一些我之前使用docker相关的文件,可以选择手动删除.
sudo rm -rf /etc/docker/
执行完成后使用如下命令卸载相关依赖.
sudo apt-get autoremove
 
更新 apt 源
Docker 默认 APT 仓库中的版本较低,因此要设置 APT 使用 Docker 的官方源,更新包信息,确保 APT 能使用 https 的方式,并安装 CA 证书.
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
添加 GPG 密钥:
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
添加源:
在文件 /etc/apt/sources.list.d/docker.list 中添加相应的源。
对应的源有:
Ubuntu Precise 12.04 (LTS): deb https://apt.dockerproject.org/repo ubuntu-precise main
Ubuntu Trusty 14.04 (LTS): deb https://apt.dockerproject.org/repo ubuntu-trusty main
Ubuntu Wily 15.10: deb https://apt.dockerproject.org/repo ubuntu-wily main
Ubuntu Xenial 16.04 (LTS): deb https://apt.dockerproject.org/repo ubuntu-xenial main
例如,对于 我的系统16.04 而言:
$ echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
$ sudo apt-get update
对于 Ubuntu 14.04, 15.10, 16.04,推荐安装 Linux-image-extra-* 内核包。这些包能允许我们使用 aufs 存储驱动。
$ sudo apt-get update && sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
确保 APT 现在是从设置的仓库中下载 Docker 的.
$ apt-cache policy docker-engine
Docker.v1.12升级到v1.13.0正式版
 
安装
上面的处理好了后,安装时需要注意的是,docker的名称发生了变化.v1.12的版本叫docker.io,新版本改为docker-engine.
sudo apt-get install docker-engine
执行完成后,查看版本号就会发现已经是最新版v.1.13.0了
sudo docker --version
Docker.v1.12升级到v1.13.0正式版
验证安装。
sudo docker run hello-world
Docker.v1.12升级到v1.13.0正式版
该命令会下载一个测试映像然后开启一个容器运行。当容器运行后,会输出一段消息然后退出.
查看 docker 守护进程的状态:
sudo systemctl status docker
Docker.v1.12升级到v1.13.0正式版
至此,docker升级就完成了。
 
新增功能解读
1.Docker 镜像构建
从已有镜像取得缓存
压扁 (squash) 镜像(实验阶段)
构建镜像时支持用 –network 指定网络
开始允许 docker build 中定义 Dockerfile 未使用的参数(ARG)
2.安装
解决影响 Docker 安装问题
增加更多的系统支持
3.网络
允许 docker run 连入指定的 swarm mode 的网络
允许 docker service create 映射宿主端口,而不是边界负载均衡网络端口
iptables 的转发规则将默认拒绝
在 docker network inspect 里显示连入的节点
允许 service VIP 可以被 ping
4.插件
插件功能正式启用
5.命令行
checkpoint 功能(试验功能)
docker stats 终于可以显示容器名了
给 docker ps 增加 is-task 过滤器
docker inspect 将可以查看任何 docker 对象
6.运行时
不在分别构建试验可执行文件,直接使用 –experimental 参数
在 overlay2 存储驱动使用于 xfs 时可以添加磁盘配额
增加 docker system 命令
提升 overlay2 的优先级
docker exec -t 自动添加 TERM 环境变量
Windows 内置的运行 Windows 程序的 Docker on Windows 的改进
7.Swarm Mode
正式支持 docker stack
添加 secret 管理
添加负载均衡和DNS记录对新增的健康检查的支持
添加滚动升级回滚的功能
补充了一些 docker service create 所缺失的参数
添加命令 docker service logs 以查看服务日志(试验功能)
增加强制再发布选项 docker service update –force
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27988.html