您的位置:首页 > 运维架构 > Docker

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

2017-01-20 18:03 337 查看
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


要手动删除所有插件并解决此问题,请执行以下步骤:

从 /var/lib/docker/plugins/ 中删除 plugins.json

重新启动 Docker,验证 Docker 守护程序启动时是否有错误

重新安装插件

Docker 1.13 有一千四百多个 issue/pull request,五千多个 commits,是 Docker 历史上最高的发布版本,这并不是一个简单的小版本变化,里面有大量的更新.具体的内容可以查看更新说明.

Top 10 新增功能 | New Features

正式支持服务栈: docker stack

正式支持插件:docker plugin

添加在 Swarm 集群环境下对密码、密钥管理的 secret 管理服务:docker secret

增加 docker system 命令

可以直接使用 docker-compose.yml 进行服务部署

添加 docker service 滚动升级出故障后回滚的功能

增加强制再发布选项 docker service update –force

允许 docker service create 映射宿主端口,而不是边界负载均衡网络端口

允许 docker run 连入指定的 swarm mode 的 overlay 网络

解决中国 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 中添加相应的源。

对应的源有:

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的版本叫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 新增功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: