TranslateProject/published/201505/20150429 Docker 1.6 Released--How to Upgrade on Fedora or CentOS.md
2015-05-31 23:54:32 +08:00

168 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

如何在Fedora / CentOS上面升级Docker 1.6
=============================================================================
Docker一个流行的将软件打包的开源容器平台已经有了新的1.6版增加了许多新的特性。该版本主要更新了Docker Registry、Engine、 Swarm、 Compose 和 Machine等方面。这次发布旨在提升性能、改善开发者和系统管理员的体验。让我们来快速看看有哪些新特性吧。
**Docker Registry (2.0)**是一项推送Docker镜像用于存储和分享的服务因为面临加载下的体验问题而经历了架构的改变。它仍然向后兼容。Docker Registry的编写语言现在从Python改为Google的Go语言了以提升性能。与Docker Engine 1.6结合后,拉取镜像的能力更快了。早先的镜像是队列式输送的,而现在是并行的啦。
**Docker Engine (1.6)**相比之前的版本有很大的提高。目前支持容器与镜像的标签。通过标签,你可以附加用户自定义的元数据到镜像和容器上,而镜像和容器反过来可以被其他工具使用。标签对正在运行的应用是不可见的,可以用来加速搜索容器和镜像。
Windows版本的Docker客户端可以连接到远程的运行在linux上的Docker Engine。
Docker目前支持日志驱动API这允许我们发送容器日志给系统如Syslog或者第三方。这将会使得系统管理员受益。
**Swarm (0.2)**是一个Docker集群工具可以将一个Docker主机池转换为一个虚拟主机。在新特性里容器甚至被放在了可用的节点上。通过添加更多的Docker命令努力支持完整的Docker API。将来使用第三方驱动来集群会成为可能。
**Compose (1.2)** 是一个Docker里定义和运行复杂应用的工具, 也得到了升级。在新版本里,可以创建多个子文件,而不是用一个没有结构的文件描述一个多容器应用。
通过**Machine (0.2)**我们可以很容易地在本地计算机、云和数据中心上搭建Docker主机。新的发布版本为开发者提供了一个相对干净地驱动界面来编写驱动。Machine集中控制供给而不是每个独立的驱动。增加了新的命令可以用来生成主机的TLS证书以提高安全性。
### 在Fedora / CentOS 上的升级指导 ###
在这一部分里我们将会学习如何在Fedora和CentOS上升级已有的docker到最新版本。请注意目前的Docker仅运行在64位的架构上Fedora和CentOS都源于RedHat命令的使用是差不多相同的除了在Fedora20和CentOS6.5里Docker包被叫做“docker-io”。
如果你系统之前没有安装Docker使用下面命令安装
"yum install docker-io" on Fedora20 / CentOS6.5
"yum install docker" - on Fedora21 / CentOS7
在升级之前备份一下docker镜像和容器卷是个不错的主意。
参考[“将文件系统打成 tar 包”][1]与[“卷备份、恢复或迁移”][2],获取更多信息。
目前测试系统安装了Docker1.5。样例输出显示是来自一个Fedora20的系统。
验证当前系统安装的Docker版本
[root@TestNode1 ~]#sudo docker -v
Docker version 1.5.0, build a8a31ef/1.5.0
如果Docker正在运行先停掉。
[root@TestNode1 ~]# sudo systemctl stop docker
使用yum update升级到最新版但是写这篇文章的时候仓库并不是最新版本(1.6),因此你需要使用二进制的升级方法。
[root@TestNode1 ~]#sudo yum -y update docker-io
No packages marked for update
[root@TestNode1 ~]#sudo wget https://get.docker.com/builds/Linux/x86_64/docker-latest -O /usr/bin/docker
--2015-04-19 13:40:48-- https://get.docker.com/builds/Linux/x86_64/docker-latest
Resolving get.docker.com (get.docker.com)... 162.242.195.82
Connecting to get.docker.com (get.docker.com)|162.242.195.82|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15443598 (15M) [binary/octet-stream]
Saving to: /usr/bin/docker
100%[======================================>] 15,443,598 8.72MB/s in 1.7s
2015-04-19 13:40:50 (8.72 MB/s) - /usr/bin/docker saved
检查更新后的版本
[root@TestNode1 ~]#sudo docker -v
Docker version 1.6.0, build 4749651
重启docker服务
[root@TestNode1 ~]# sudo systemctl start docker
确认Docker在运行
[root@TestNode1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
fedora latest 834629358fe2 3 months ago 241.3 MB
[root@TestNode1 ~]# docker run fedora /bin/echo Hello World
Hello World
CentOS安装时需要**注意**在CentOS上安装完Docker后当你试图启动Docker服务的时候你可能会得到错误的信息如下所示
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
Active: failed (Result: exit-code) since Mon 2015-04-20 03:24:24 EDT; 6h ago
Docs: http://docs.docker.com
Process: 21069 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY (code=exited, status=127)
Main PID: 21069 (code=exited, status=127)
Apr 20 03:24:24 centos7 systemd[1]: Starting Docker Application Container E.....
Apr 20 03:24:24 centos7 docker[21069]: time="2015-04-20T03:24:24-04:00" lev...)"
Apr 20 03:24:24 centos7 docker[21069]: time="2015-04-20T03:24:24-04:00" lev...)"
Apr 20 03:24:24 centos7 docker[21069]: /usr/bin/docker: relocation error: /...ce
Apr 20 03:24:24 centos7 systemd[1]: docker.service: main process exited, co.../a
Apr 20 03:24:24 centos7 systemd[1]: Failed to start Docker Application Cont...e.
Apr 20 03:24:24 centos7 systemd[1]: Unit docker.service entered failed state.
这是一个已知的bug[https://bugzilla.redhat.com/show_bug.cgi?id=1207839][3]),需要将设备映射升级到最新。
[root@centos7 ~]# rpm -qa device-mapper
device-mapper-1.02.84-14.el7.x86_64
[root@centos7 ~]# yum update device-mapper
[root@centos7 ~]# rpm -qa device-mapper
device-mapper-1.02.93-3.el7.x86_64
[root@centos7 ~]# systemctl start docker
### 总结 ###
尽管docker技术出现时间不长但很快就变得非常流行了。它使得开发者的生活变得轻松运维团队可以快速独立地创建和部署应用。通过该公司的发布Docker的快速更新产品质量的提升满足用户需求未来对于Docker来说一片光明。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-how-to/docker-1-6-features-upgrade-fedora-centos/
作者:[B N Poornima][a]
译者:[wi-cuckoo](https://github.com/wi-cuckoo)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/bnpoornima/
[1]:http://docs.docker.com/reference/commandline/cli/#export
[2]:http://docs.docker.com/userguide/dockervolumes/#backup-restore-or-migrate-data-volumes
[3]:https://bugzilla.redhat.com/show_bug.cgi?id=1207839
[4]:
[5]:
[6]:
[7]:
[8]:
[9]:
[10]:
[11]:
[12]:
[13]:
[14]:
[15]:
[16]:
[17]:
[18]:
[19]:
[20]: