TranslateProject/translated/tech/20150429 Docker 1.6 Released--How to Upgrade on Fedora or CentOS.md
2015-05-04 20:24:04 +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.

Docker 1.6 发布 - 如何在Fedora / CentOS上面升级
=============================================================================
Docker一个为软件打包的流行开源容器平台有了新的发行版1.6增加了许多新的特性。该版本在Docker注册引擎云集组合和机器方面都有更新。这次发行旨在提升体验开发者和系统管理员的经验这里不太确定。让我们来快速看看有哪些新特性吧。
**Docker Registry (2.0)**是一项推送Docker镜像用于存储和分享的服务经历过架构的改变因为面临加载下的体验问题。它仍然向下兼容。Docker Registry的编写语言现在从Python改为Google的Go语言了为了提升表现力。与Docker引擎1.6结合后,拉取镜像的能力更快了。早先的镜像被队列式地输送,而现在是并行的啦。
**Docker Engine (1.6)**相比之前的版本有很大的提高。目前支持容器与镜像标签。通过标签,你可以附加用户自定义的元数据到镜像和容器上,而镜像和容器反过来可以被其他工具使用。标签对正在运行的应用是不可见的,可以用来加速搜索容器和镜像。
Windows版本的Docker客户端可以连接一个远程的运行linux的Docker引擎。
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镜像和容器卷是个不错的主意。
参考[filesystem to a tar archive][1]与[volumes backups, restores or migrations options][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)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [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]: