- Docker技術入門與實戰(第3版)
- 楊保華 戴王劍 曹亞侖
- 4029字
- 2018-11-08 18:34:06
2.2 安裝Docker引擎
Docker引擎是使用Docker容器的核心組件,可以在主流的操作系統和云平臺上使用,包括Linux操作系統(如Ubuntu、Debian、CentOS、Redhat等), macOS和Windows操作系統,以及IBM、亞馬遜、微軟等知名云平臺。
用戶可以訪問Docker官網的Get Docker(https://www.docker.com/get-docker)頁面,查看獲取Docker的方式,以及Docker支持的平臺類型,如圖2-2所示。

圖2-2 獲取Docker
目前Docker支持Docker引擎、Docker Hub、Docker Cloud等多種服務。
? Docker引擎:包括支持在桌面系統或云平臺安裝Docker,以及為企業提供簡單安全彈性的容器集群編排和管理;
? DockerHub:官方提供的云托管服務,可以提供公有或私有的鏡像倉庫;
? DockerCloud:官方提供的容器云服務,可以完成容器的部署與管理,可以完整地支持容器化項目,還有CI、CD功能。
Docker引擎目前分為兩個版本:社區版本(Community Edition, CE)和企業版本(Enterprise Edition, EE)。社區版本包括大部分的核心功能,企業版本則通過付費形式提供認證支持、鏡像管理、容器托管、安全掃描等高級服務。通常情況下,用戶使用社區版本可以滿足大部分需求;若有更苛刻的需求,可以購買企業版本服務。社區版本每個月會發布一次嘗鮮(Edge)版本,每個季度(3、6、9、12月)會發行一次穩定(Stable)版本。版本號命名格式為“年份.月份”,如2018年6月發布的版本號為v18.06。
筆者推薦首選在Linux環境中使用Docker社區穩定版本,以獲取最佳的原生支持體驗。本書如無特殊說明,則以社區版本的穩定版為例進行說明。
2.2.1 Ubuntu環境下安裝Docker
1.系統要求
Ubuntu操作系統對Docker的支持十分成熟,可以支持包括x86_64、armhf、s390x (IBM Z)、ppc64le等系統架構,只要是64位即可。
Docker目前支持的最低Ubuntu版本為14.04 LTS,但實際上從穩定性上考慮,推薦使用16.04 LTS或18.0.4 LTS版本,并且系統內核越新越好,以支持Docker最新的特性。
用戶可以通過如下命令檢查自己的內核版本詳細信息:
$ uname -a Linux localhost 4.9.36-x86_64-generic
或者:
$ cat /proc/version Linux version 4.9.36-x86_64-generic (maker@linux.com) (gcc version 4.9.2 (Debian 4.9.2-10))
如果使用Ubuntu 16.04 LTS版本,為了讓Docker使用aufs存儲,推薦安裝如下兩個軟件包:
$ sudo apt-get update $ sudo apt-get install -y \ linux-image-extra-$(uname -r) \ linux-image-extra-virtual
注意
Ubuntu發行版中,LTS(Long-Term-Support)意味著更穩定的功能和更長期(目前為5年)的升級支持,生產環境中推薦盡量使用LTS版本。
2.添加鏡像源
首先需要安裝apt-transport-https等軟件包支持https協議的源:
$ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
添加源的gpg密鑰:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - OK
確認導入指紋為“9DC85822 9FC7 DD38854A E2D8 8D81803C 0EBF CD88”的GPG公鑰:
$ sudo apt-key fingerprint 0EBFCD88 pub 4096R/0EBFCD882017-02-22 Key fingerprint = 9DC85822 9FC7 DD38854A E2D8 8D81803C 0EBF CD88 uid Docker Release (CE deb) <docker@docker.com> sub 4096R/F273FCD82017-02-22
獲取當前操作系統的代號:
$ lsb_release -cs xenial
一般情況下,Ubuntu 16.04 LTS代號為xenial, Ubuntu 18.04 LTS代號為bionic。
接下來通過如下命令添加Docker穩定版的官方軟件源,非xenial版本的系統注意修改為自己對應的代號:
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ xenial \ stable"
添加成功后,再次更新apt軟件包緩存:
$ sudo apt-get update
3.開始安裝Docker
在成功添加源之后,就可以安裝最新版本的Docker了,軟件包名稱為docker-ce,代表是社區版本:
$ sudo apt-get install -y docker-ce
如果系統中存在較舊版本的Docker,會提示是否先刪除,選擇是即可。
除了基于手動添加軟件源的方式之外,也可以使用官方提供的腳本來自動化安裝Docker:
$ sudo curl -sSL https://get.docker.com/ | sh
安裝成功后,會自動啟動Docker服務。
用戶也可以指定安裝軟件源中其他版本的Docker:
$ sudo apt-cache madison docker-ce docker-ce | 17.11.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/edge amd64 Packages docker-ce | 17.10.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/edge amd64 Packages docker-ce | 17.09.1~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages ... $ sudo apt-get install docker-ce=17.11.0~ce-0~ubuntu
2.2.2 CentOS環境下安裝Docker
Docker目前支持CentOS 7及以后的版本。系統的要求跟Ubuntu情況類似,64位操作系統,內核版本至少為3.10。
首先,為了方便添加軟件源,以及支持devicemapper存儲類型,安裝如下軟件包:
$ sudo yum update $ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
添加Docker穩定版本的yum軟件源:
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
之后更新yum軟件源緩存,并安裝Docker:
$ sudo yum update $ sudo yum install -y docker-ce
最后,確認Docker服務啟動正常:
$ sudo systemctl start docker
2.2.3 通過腳本安裝
用戶還可以使用官方提供的shell腳本來在Linux系統(目前支持Ubuntu、Debian、Oracleserver、Fedora、Centos、OpenSuse、Gentoo等常見發行版)上安裝Docker的最新正式版本,該腳本會自動檢測系統信息并進行相應配置:
$ curl -fsSL https://get.docker.com/ | sh
或者:
$ wget -qO- https://get.docker.com/ | sh
如果想嘗鮮最新功能,可以使用下面的腳本來安裝最新的“嘗鮮”版本。但要注意,非穩定版本往往意味著功能還不夠穩定,不要在生產環境中使用:
$ curl -fsSL https://test.docker.com/ | sh
另外,也可以從store.docker.com/search? offering=community&q=&type=edition找到各個平臺上的Docker安裝包,自行下載使用。
2.2.4 macOS環境下安裝Docker
Docker官方非常重視其在Mac環境下的易用性。由于大量開發者使用Mac環境進行開發,而Docker是一個完整的容器化應用的開發環境,所以Docker官方提供了簡單易用的Docker for Mac(https://docs.docker.com/docker-for-mac/)工具。Docker for Mac其實是一個完整的Docker CE工具。下面我們一步步講解如何正確安裝Docker for Mac。
1.選擇版本
目前用戶可以選擇穩定版(Stable)或測試版(Beta),這兩個版本都可以通過配置Docker Daemon來開啟一些實驗特性。配置時,只要啟動Docker daemon時帶上--experimental參數即可。或者通過修改/etc/docker/daemon.json配置文件中的experimental字段,如下所示:
{ "experimental": true }
也可以使用如下指令直接確認實驗特性是否開啟:
$ docker version -f '{{.Server.Experimental}}' true
目前的實驗特性主要有ipvlan網絡驅動、顯卡插件、分布式應用包(Distributed Application Bundles)、監測點(Checkpoint)、回滾(Restore),以及使用squash參數構建鏡像。詳細的實驗特性說明可參見https://github.com/docker/docker-ce/blob/master/components/cli/experimental/README.md。
官方建議在生產環境中關閉這些實驗特性。
穩定版(stable channel)經過完整測試和精心維護,可用于關注穩定性的生產環境。穩定版每個季度(3個月)發布一次。穩定版用戶可以選擇是否允許Docker收集使用情況統計或其他數據。穩定版下載地址為https://download.docker.com/mac/stable/Docker.dmg。
測試版(edge channel)包含最新的工具和特性,甚至會包含一些開發中的特性。測試版適用于希望嘗鮮并有能力處理異常或Bug的用戶,并且默認收集所有用戶使用數據。測試版每月發布一次。測試版下載地址為https://download.docker.com/mac/edge/Docker.dmg。
2.安裝須知
Docker for Mac與Docker Machine的關系是互不影響。用戶可以從本地default machine拷貝容器和鏡像至Docker for Mac的HyperKit VM中。HyperKit是Docker開源的支持OSX的輕量級虛擬化工具包。它基于MacOSX 10.10之后引入的Hypervisor框架。HyperKit應用可以利用硬件虛擬化運行VM,但無須特殊權限或者復雜的管理工具棧。關于HyperKit的詳細信息參見https://github.com/moby/hyperkit。
當用戶運行Docker for Mac時,本機或遠程均無須運行Docker Machine。用戶使用的是一套新的原生虛擬化系統,不再需要VirtualBox。如果希望了解更多兩者對比情況,參見https://docs.docker.com/docker-for-mac/docker-toolbox/。
Docker for Mac支持macOS El Capitan 10.11及其后續版本。最小要求是macOS Yosemite 10.10.3,同時Docker并不保證可以完全支持10.10.X, Docker for Mac從版本1.13開始,不再支持10.10版本的macOS。
3.下載運行Docker for Mac
首先,選擇需要的版本并下載。雙擊打開Docker.dmg文件,將Docker.app拖至應用程序(或Applications)文件夾即可。
Docker應用啟動后,在任務欄會多出一個小圖標,如圖2-3所示。

圖2-3 下載Docker for Mac后
用戶可以通過這個圖標打開Docker應用,并進行配置。
4.驗證
安裝成功后,可以確認運行的Docker版本信息。如果用戶環境已安裝過Docker環境,則可能存在老版docker-py,為了防止沖突,需要重新安裝:
$ sudo pip uninstall docker-py $ sudo pip uninstall docker $ sudo pip install docker
此時運行指令已不會提示沖突:
$ docker-compose --version docker-compose version 1.18.0, build 8dd22a9
用戶還可以執行docker version獲取更全面的版本信息:
$ docker version Client: Version: 18.03.1-ce API version: 1.37 Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:13:022018 OS/Arch: darwin/amd64 Experimental: false Orchestrator: swarm Server: Engine: Version: 18.03.1-ce API version: 1.37 (minimum version 1.12) Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:22:382018 OS/Arch: linux/amd64 Experimental: false
可見正常輸出客戶端和服務端版本信息,以及實驗特性默認關閉。如果Docker for Mac啟動失敗或關閉狀態,則會出現Error response from daemon: Bad response from Docker engine提示。
下面啟動一個Nginx容器,檢查能正確獲取鏡像并運行:
$ docker run -d -p 80:80--name webserver nginx
然后使用docker ps指令查看運行的容器:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5d756726c17c nginx "nginx -g 'daemon of…" 49 seconds ago Up 48 seconds 0.0.0.0:80->80/tcp webserver
可見Nginx容器已經在0.0.0.0:80啟動,并映射到80端口。打開瀏覽器訪問此地址,如圖2-4所示。
5.常用配置
點擊系統狀態欄的Docker圖標可以訪問管理菜單,如圖2-5所示。

圖2-4 Nginx容器啟動

圖2-5 管理菜單
About Docker頁面呈現已安裝的各組件版本信息、更新通道(穩定版或測試版),以及更新記錄(Release Notes)、聲明、版權信息等,如圖2-6所示。
點擊菜單的Preferences項,打開配置管理界面。其中,General頁面可以配置自動啟動配置、升級、備份,以及使用數據收集配置,如圖2-7所示。

圖2-6 About Docker頁面

圖2-7 General頁面
在File sharing(文件共享)頁面中,用戶可以選擇哪個Mac本地文件夾與容器共享。點擊+后可以繼續添加本地目錄,點擊Apply&Restart按鈕生效,這里其實使用了-v參數,如圖2-8所示。
在Disk頁面中,可以配置磁盤路徑,并可以修改虛擬磁盤大小,如圖2-9所示。

圖2-8 File Sharing頁面

圖2-9 Disk頁面
在Advanced頁面中,可以修改本機分配給Docker的計算資源,如CPU、內存和存儲位置,如圖2-10所示。
在Proxies頁面中,可以配置Pull操作時的代理配置,如圖2-11所示。

圖2-10 Advanced頁面

圖2-11 Proxies頁面
在Daemon頁面中,用戶可用兩種方式(基礎模式/高級模式即JSON)配置Docker守護進程,可以選擇自定義鏡像、開啟嘗鮮模式等,如圖2-12所示。
點擊Reset按鈕,用戶可以選擇重啟Docker、刪除所有Docker數據、恢復出廠設置、重裝Docker等操作。
6. Kitematic
通過菜單可以安裝Kitematic工具管理本地鏡像,點擊提示框中的下載地址,如圖2-13所示。

圖2-12 Daemon頁面

圖2-13 安裝Kitematic
下載Kitematic-Mac.zip并解壓縮至應用程序文件夾(或Applications),雙擊打開Kitematic. app,如圖2-14所示。

圖2-14 下載Kitematic
進入Docker Hub登錄頁面,用戶可以選擇暫時不登錄,直接進入主頁面,如圖2-15所示。

圖2-15 進入Docker Hub登錄頁面
主頁面可見多種常用鏡像,點擊CREATE即可直接創建容器,如圖2-16所示。

圖2-16 創建容器
以hello-world-nginx鏡像為例。點擊CREATE后進入下載頁面,如圖2-17所示。

圖2-17 下載鏡像
容器運行后,在主頁可見運行日志、掛載磁盤(雙擊可以直接打開)、瀏覽器預覽以及容器配置(Settings)等,如圖2-18所示。

圖2-18 容器主頁
進入配置頁面,可見hostname、port,以及卷、網絡等配置,如圖2-19所示。
用戶此時可以打開瀏覽器訪問http://localhost:32768,查看示例頁面。

圖2-19 配置頁面
2.2.5 Windows環境下安裝Docker
目前Docker可以通過虛擬機方式來支持Windows 7.1和Windows 8,只要平臺CPU支持硬件虛擬化特性即可。讀者如果無法確定自己計算機的CPU是否支持該特性也無須擔心,實際上,目前市面上主流的CPU都早已支持硬件虛擬化特性。
對Windows 10的用戶來說,Docker官方為64位Windows 10 Pro環境(需支持Hyper-V)提供了原生虛擬化應用Docker for Windows。Windows環境下Docker CE同樣支持兩個版本:穩定版和測試版。這兩個版本的異同可以參見上節。下載地址可見官網文檔中心的Get Docker→Docker CE→Windows。下面具體介紹安裝步驟。
首先,雙擊exe文件進行安裝,如圖2-20所示。

圖2-20 運行exe文件
安裝完成后點擊OK開啟Hyper-V,如圖2-21所示。

圖2-21 進入Hyper-V
下面查看常用配置。General頁面可以配置自啟策略,是否收集用戶信息,是否檢查升級等,如圖2-22所示。

圖2-22 Generd頁面
Shared Drivers頁面可以選擇本地磁盤作為共享存儲,相當于設置-v參數,在容器中可以使用這些磁盤空間,如圖2-23所示。
Advanced頁面可以調整容器使用的本地資源,包括CPU和內存,也可以配置鏡像和卷的VHD地址,如圖2-24所示。
在Network頁面可進行網絡配置,包括vswitch和DNS配置,如圖2-25所示。

圖2-23 Shared Drives頁面

圖2-24 Advanced頁面

圖2-25 Network頁面
若要在Windows 10之外的Windows上運行Docker,可以使用Boot2Docker工具。用戶可從https://docs.docker.com/installation/windows/下載使用。
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- Learning Scala Programming
- Visual Basic .NET程序設計(第3版)
- 玩轉Scratch少兒趣味編程
- ThinkPHP 5實戰
- Visual C++實例精通
- 羅克韋爾ControlLogix系統應用技術
- Securing WebLogic Server 12c
- 深度學習:算法入門與Keras編程實踐
- PostgreSQL Replication(Second Edition)
- Mastering Linux Network Administration
- Linux:Embedded Development
- 從Java到Web程序設計教程
- Instant jQuery Boilerplate for Plugins
- INSTANT Apache ServiceMix How-to