自己学Docker:10.Docker.v1.12升级到v1.13.0 正式版

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 历史上最高的发布版本,这并不是一个简单的小版本变化,里面有大量的更新.具体的内容可以查看更新说明.

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. 解决中国 GFW 墙掉 docker-engine apt/yum源的问题

升级到v1.13.0

卸载旧版本

首先需要卸载到已有的版本.

sudo apt-get purge docker.io

这里写图片描述
卸载过程中会提示/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 中添加相应的源。
对应的源有:

$ 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的版本叫docker.io,新版本改为docker-engine.

sudo apt-get install docker-engine

执行完成后,查看版本号就会发现已经是最新版v.1.13.0了

sudo docker --version

这里写图片描述
验证安装,

sudo docker run hello-world

这里写图片描述
该命令会下载一个测试映像然后开启一个容器运行。当容器运行后,会输出一段消息然后退出.
查看 docker 守护进程的状态:

sudo systemctl status docker

这里写图片描述
至此,docker升级就完成了.

新增功能解读

Docker 镜像构建

  • 从已有镜像取得缓存
  • 压扁 (squash) 镜像(实验阶段)
  • 构建镜像时支持用 –network 指定网络
  • 开始允许 docker build 中定义 Dockerfile 未使用的参数(ARG)

安装

  • 解决 GFW 影响 Docker 安装问题
  • 增加更多的系统支持

网络

  • 允许 docker run 连入指定的 swarm mode 的网络
  • 允许 docker service create 映射宿主端口,而不是边界负载均衡网络端口
  • iptables 的转发规则将默认拒绝
  • 在 docker network inspect 里显示连入的节点
  • 允许 service VIP 可以被 ping

插件

  • 插件功能正式启用

命令行

  • checkpoint 功能(试验功能)
  • docker stats 终于可以显示容器名了
  • 给 docker ps 增加 is-task 过滤器
  • docker inspect 将可以查看任何 docker 对象

运行时

  • 不在分别构建试验可执行文件,直接使用 –experimental 参数
  • 在 overlay2 存储驱动使用于 xfs 时可以添加磁盘配额
  • 增加 docker system 命令
  • 提升 overlay2 的优先级
  • docker exec -t 自动添加 TERM 环境变量
  • Windows 内置的运行 Windows 程序的 Docker on Windows 的改进

Swarm Mode

  • 正式支持 docker stack
  • 添加 secret 管理
  • 添加负载均衡和DNS记录对新增的健康检查的支持
  • 添加滚动升级回滚的功能
  • 补充了一些 docker service create 所缺失的参数
  • 添加命令 docker service logs 以查看服务日志(试验功能)
  • 增加强制再发布选项 docker service update –force

具体修改可以参见Docker 1.13 新增功能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值