天天看點

Docker技術入門與實戰(第2版)2.2 安裝Docker

<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 &lt;&lt;eof &gt; /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 &lt;&lt;-'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-&gt;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已經運作起來了!

繼續閱讀