歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux服務

在Linux服務器上升級Docker的教程

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 包”與“卷備份、恢復或遷移”,獲取更多信息。

目前,測試系統安裝了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),需要將設備映射升級到最新。

   
復制代碼代碼如下:[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來說一片光明。

Copyright © Linux教程網 All Rights Reserved