<b>2.2 安裝docker</b>
<b></b>
docker在主流的作業系統和雲平台上都可以使用,包括linux作業系統(如ubuntu、debian、centos、redhat等)、macos作業系統和windows作業系統,以及aws等雲平台。
使用者可以通路docker官網的get docker(https://www.docker.com/products/overview)頁面,檢視擷取docker的方式,以及docker支援的平台類型,如圖2-2所示。
圖2-2 擷取docker
在get docker頁面,我們可以看到目前docker支援docker platform、docker hub、docker cloud和docker datacenter。
docker platform:支援在桌面系統或雲平台安裝docker;
dockerhub:官方提供的雲托管服務,可以提供公有或私有的鏡像倉庫;
dockercloud:官方提供的容器雲服務,可以完成容器的部署與管理,可以完整地支援容器化項目,還有ci、cd功能;
docker datacenter:提供企業級的簡單安全彈性的容器叢集編排和管理。
筆者推薦盡量使用linux作業系統來運作docker,因為目前linux作業系統對docker的支援是原生的,使用體驗最好。
2.2.1 ubuntu環境下安裝docker
1.?系統要求
docker目前隻能運作在64位平台上,并且要求核心版本不低于3.10,實際上核心越新越好,過低的核心版本容易造成功能不穩定。
使用者可以通過如下指令檢查自己的核心版本詳細資訊:
$ uname -a
linux host 3.16.0-43-generic #58~14.04.1-ubuntu smp mon jun 22 10:21:20 utc
2015 x86_64 x86_64 x86_64 gnu/linux
或者:
$ cat /proc/version
linux version 3.16.0-43-generic (buildd@brownie) (gcc version 4.8.2 (ubuntu
4.8.2-19ubuntu1) ) #58~14.04.1-ubuntu smp mon jun 22 10:21:20 utc 2015
docker目前支援的最低ubuntu版本為12.04 lts,但實際上從穩定性上考慮,推薦至少使用14.04 lts版本。
如果使用12.04 lts版本,首先要更新系統核心和安裝可能需要的軟體包,包括:
linux-image-generic-lts-trusty(必備)
linux-headers-generic-lts-trusty(必備)
xserver-xorg-lts-trusty(帶圖形界面時必備)
libgl1-mesa-glx-lts-trusty(帶圖形界面時必備)
另外,為了讓docker使用aufs存儲,推薦安裝linux-image-extra軟體包。
$ sudo apt-get install -y linux-image-extra-$(uname -r)
ubuntu發行版中,lts(long-term-support)意味着更穩定的功能和更長期(目前為5年)的更新支援,生産環境中盡量使用lts版本。
2.?添加鏡像源
首先需要安裝apt-transport-https包支援https協定的源:
$ sudo apt-get install -y apt-transport-https
添加源的gpg密鑰:
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys
58118e89f3a912897c070adbf76221572c52609d
擷取目前作業系統的代号:
$ lsb_release -c
codename: trusty
一般情況下,12.04(lts)代号為precise,14.04(lts)代号為trusty,15.04代号為vivid,15.10代号為wily。這裡擷取的代号為trusty。
接下來就可以添加docker的官方apt軟體源了。通過下面的指令建立/etc/apt/sources.list.d/docker.list檔案,并寫入源的位址内容。非trusty版本的系統注意修改為自己對應的代号:
$ sudo cat <<eof > /etc/apt/sources.list.d/docker.list
deb https://apt.dockerproject.org/repo ubuntu-trusty main
eof
添加成功後,更新apt軟體包緩存:
$ sudo apt-get update
3.?開始安裝docker
在成功添加源之後,就可以安裝最新版本的docker了,軟體包名稱為docker-engine:
$ sudo apt-get install -y docker-engine
如果系統中存在較舊版本的docker(lxc-docker),會提示是否先删除,選擇“是”即可。
除了基于手動添加軟體源的方式,也可以使用官方提供的腳本來自動化安裝docker:
$ sudo curl -ssl https://get.docker.com/ | sh
安裝成功後,啟動docker服務:
$ sudo service docker start
2.2.2 centos環境下安裝docker
系統的要求與ubuntu情況下類似:64位作業系統,核心版本至少為3.10。
docker目前支援centos 6.5及以後的版本,推薦使用centos 7系統。
首先,也是要添加yum軟體源:
$ sudo tee /etc/yum.repos.d/docker.repo <<-'eof'
[dockerrepo]
name=docker repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
之後更新yum軟體源緩存,并安裝docker-engine:
$ sudo yum update
$ sudo yum install -y docker-engine
對于centos 7系統,centos-extras源中已内置docker,如果已經配置了centos-extras源,可以直接通過上面的yum指令進行安裝。
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
另外,也可以從github.com/docker/docker/releases找到所有的發行版本資訊和二進制包,自行下載下傳使用。
2.2.4 mac os環境下安裝docker
docker官方非常重視docker在mac環境下的易用性。目前docker支援原生mac用戶端,内置圖形界面,支援自動更新。此用戶端與mac os x的原生虛拟化深度結合,摒棄了之前安裝virtualbox(即docker toolbox)的簡單粗暴的做法。我們先從官方預設的docker for mac開始。
1.?docker for mac
第一步,下載下傳安裝包。通路https://docs.docker.com/docker-for-mac/下載下傳頁面。目前docker for mac分為穩定版和beta版兩種更新通道,我們可以按需選擇。下載下傳完成後,輕按兩下安裝包,如圖2-3所示。
圖2-3 下載下傳後打開安裝包
第二步,開始安裝。将docker.app拖曳至applications檔案夾,即可完成安裝,如圖2-4所示。
圖2-4 安裝docker到applications檔案夾
第三步,運作docker for mac。在歡迎視窗點選“next”,如圖2-5所示。
圖2-5 歡迎視窗
允許docker獲得系統權限,它需要将mac網卡連結至docker app。點選“ok”後輸入系統管理者密碼,如圖2-6所示。
圖2-6 運作docker for mac
此時系統狀态欄會出現docker的icon圖示,點選後如果出現“docker is running!”,則說明安裝成功。
第四步,驗證docker安裝。打開終端控制器或其他系統指令行,執行docker version指令。
$ docker version
client:
version: 1.12.0
api version: 1.24
go version: go1.6.3
git commit: 8eab29e
built: thu jul 28 21:15:28 2016
os/arch: darwin/amd64
server:
os/arch: linux/amd64
如果我們看到client和server均有輸出,則說明docker for mac已經正常啟動。如果我們看到報錯:“cannot connect to the docker daemon. is the docker daemon running on this host?”,則說明docker for mac沒有啟動或啟動失敗。
下面啟動一個nginx容器,檢查能正确擷取鏡像并運作:
$ docker run -d -p 80:80 --name webserver nginx
unable to find image 'nginx:latest' locally
latest: pulling from library/nginx
51f5c6a04d83: pull complete
a3ed95caeb02: pull complete
51d229e136d0: pull complete
bcd41daec8cc: pull complete
digest:
sha256:0fe6413f3e30fcc5920bc8fa769280975b10b1c26721de956e1428b9e2f29d04
status: downloaded newer image for nginx:latest
34bcd01998a76f67b1b9e6abe5b7db5e685af325d6fafb1acd0ce84e81e71e5d
然後使用docker ps指令檢視目前運作的容器:
$ docker ps
container id image command created
status ports names
34bcd01998a7 nginx "nginx -g 'daemon off" 2 minutes ago
up 2 minutes 0.0.0.0:80->80/tcp, 443/tcp webserver
可見nginx容器已經在0.0.0.0:80啟動,并映射了80端口,下面我們打開浏覽器通路此位址,如圖2-7所示。
第五步,常用配置設定。首先,點選系統狀态欄的docker圖示,會出現操作菜單,如圖2-8所示。
圖2-7 允許通路系統權限 ? 圖2-8 docker菜單
然後,點選preferences,進入标準配置頁面,我們可以設定是否自動啟動與更新,設定備份工具time machine是否備份vm,還可以配置docker使用的cpu數、記憶體容量,如圖2-9所示。
點選進入advanced進階配置。為了更好地使用docker hub,我們可以使用registry鏡像站點進行加速。點選+後,加入鏡像站點配置。這裡還可以配置http代理伺服器,如圖2-10所示。
點選進入file sharing标簽頁,此處可以配置挂載至容器中的本地目錄。點選+後可以繼續添加本地目錄,如圖2-11所示。
圖2-9 标準配置頁面 圖2-10 進階配置頁面
點選進入privacy标簽頁,此處可以配置隐私選項,如是否發送使用資訊,以及是否發送程式崩潰報告,如圖2-12所示。
圖2-11 檔案分享配置頁面 ? 圖2-12 隐私配置頁面
2.?docker toolbox
在mac os x作業系統上安裝docker,除了docker for mac的原生方式之外,還可以使用官方提供的docker toolbox工具。
首先前往https://www.docker.com/products/docker-toolbox下載下傳對應版本的toolbox。目前docker支援的mac os x版本為10.6+。如圖2-13所示。
圖2-13 toolbox安裝頁面
輕按兩下運作安裝包。這個過程将安裝一個virtualbox虛拟機,内置了docker engine、compose、machine、kitematic等管理工具。安裝成功後,找到boot2docker并運作它。如圖2-14所示。
圖2-14 boot2docker頁面
現在進行boot2docker的初始化:
$ boot2docker init
$ boot2docker start
$ $(boot2docker shellinit)
将看到虛拟機在指令行視窗中啟動運作。當虛拟機初始化完畢後,可以使用boot2docker stop和boot2docker start來控制它。
注意,如果在指令行中看到如下提示資訊:
to connect the docker client to the docker daemon, please set: export docker_
host=tcp://192.168.59.103:2375
可以執行提示資訊中的語句:export docker_host=tcp://192.168.59.103:2375。此語句的作用是在系統環境變量中設定docker的主機位址。
2.2.5 windows環境下安裝docker
目前docker可以通過虛拟機方式來支援windows 7.1和8,隻要平台cpu支援硬體虛拟化特性即可。如果無法确定自己計算機的cpu是否支援該特性也無需擔心,實際上,目前市面上主流的cpu都早已支援了硬體虛拟化特性。
對于windows 10使用者,docker官方提供了原生虛拟化應用docker for windows。詳情見:https://docs.docker.com/windows/step_one/。目前國内windows 7還是主導地位的版本,是以下面主要講解如何在windows 7環境下安裝docker環境。
由于docker引擎使用了linux核心特性,是以如果要在windows 10之外的windows上運作,需要額外使用一個虛拟機來提供linux支援。這裡推薦使用boot2docker工具,它會首先安裝一個經過加工與配置的輕量級虛拟機,然後在其中運作docker。主要步驟如下:
首先,從https://docs.docker.com/installation/windows/下載下傳最新官方docker for windows installer。輕按兩下打開installer。這個過程将安裝virtualbox、msys-git、boot2docker linux iso鏡像,以及boot2docker管理工具。如圖2-15所示。
圖2-15 docker for windows installer
最後,打開桌面的boot2docker start程式,或者program files\boot2docker for windows。此初始化腳本在第一次運作時需要輸入一個ssh key passphrase(用于ssh密鑰生成的密碼)。讀者可以自行設定,也可以直接按Enter鍵跳過此設定。如圖2-16所示。
圖2-16 boot2docker安裝器
此時boot2docker start程式将連接配接至虛拟機中的shell會話,docker已經運作起來了!