TranslateProject/sources/tech/20150429 Docker 1.6 Released--How to Upgrade on Fedora or CentOS.md
2015-04-29 11:35:03 +08:00

7.7 KiB
Raw Blame History

Docker 1.6 Released - How to Upgrade on Fedora / CentOS

Docker, a popular open source container platform for packaging applications, has a new release 1.6 with lot of new features in it. This version has updates to Docker Registry, Engine, Swarm, Compose and Machine. The release aims at improvements in performance, developer and system administrator experiences. Let us take a quick look at the new features available.

Docker Registry (2.0) which is a service for pushing Docker images for storing and sharing, has undergone architectural changes as it was facing performance issues when under load. It is still backward compatible. The language in which Docker Registry is written is now changed from Python to Google's Go to improve performance. In combination with Docker Engine 1.6, it is capable of pulling the images faster. Earlier the images were delivered sequentially, but now in parallel.

Docker Engine (1.6) is greatly improved from its previous version. It supports containers and image labels. With labels you can attach user-defined metadata to images and containers which in turn can be used by other tools. Labels will not be visible to the running applications and can be used to speed up the searching of containers and images.

There is a Windows version of the Docker client which can connect to a remote Docker engine that runs Linux.

Docker now supports logging driver API that allows us to send container logs to systems like Syslog or to a third-party. It is going to be benefitting the system administrators.

Swarm (0.2) is a clustering tool for Docker which turns a pool of Docker hosts into one virtual host. In the new feature, containers are evenly placed on the available nodes. Effort is made towards supporting the complete Docker API by adding more Docker commands. In the future, it will be possible to use third-party drivers for clustering.

Compose (1.2) which is a tool for defining and running complex applications in Docker has also got an upgrade. In the new version, one can create multiple sub-files instead of one flat file to describe a multi-container application.

With Machine (0.2), we can easily create Docker hosts on local computers, clouds and data centers. The new release provides a cleaner driver interface to write drivers for providers. Provisioning is handled centrally by Machine instead of each individual driver. New command added to regenerate host's TLS certificates which increases security.

Upgrade instructions on Fedora / CentOS

In this section, let us learn how to upgrade the existing docker version to the latest on Fedora and CentOS. Please note that currently Docker runs only on 64-bit architecture. As both Fedora and CentOS are from RedHat, commands used are pretty much identical except that the Docker package in Fedora20 and CentOS6.5 is called “docker-io”.

If you do not already have Docker installed on the system, install it using:

"yum install docker-io"    on Fedora20 / CentOS6.5

"yum install docker"  - on Fedora21 / CentOS7

Before upgrading, it is good to have a backup of the docker images and container volumes.

Refer filesystem to a tar archive and volumes backups, restores or migrations options for more details.

Currently the test system has Docker version 1.5 installed. Output shown in the examples are from a Fedora 20 system.

Verify the current version of Docker installed on the system

[root@TestNode1 ~]#sudo docker -v

Docker version 1.5.0, build a8a31ef/1.5.0

If the Docker service is running, first stop it.

[root@TestNode1 ~]# sudo systemctl stop docker

Upgrade to the latest version using yum update. But at the time of writing this article, the repositories were not yet updated with the latest version(1.6). Hence you need to use the binary method of upgradation.

[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

Check the updated version

[root@TestNode1 ~]#sudo docker -v

Docker version 1.6.0, build 4749651

Restart the docker service

[root@TestNode1 ~]# sudo systemctl start docker

Verify that Docker is working

[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

Note on CentOS installation , after installing Docker on CentOS, you might get error messages like the following while trying to start the Docker service

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.

This is a known bug ( https://bugzilla.redhat.com/show_bug.cgi?id=1207839 ) and needs an upgrade of the device mapper to the latest level.

[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

Summary

Though the docker technology is quite recent one, it is quickly gaining popularity. It has made life easy for developers and ops teams to quickly create and deploy applications respectively. With the company releasing quick updates to Docker in order to improve the product and address customer requirements, the future is definitely bright for Docker.


via: http://linoxide.com/linux-how-to/docker-1-6-features-upgrade-fedora-centos/

作者:B N Poornima 译者:译者ID 校对:校对者ID

本文由 LCTT 原创翻译,Linux中国 荣誉推出

[20]: