7.7 KiB
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
[20]: