更新時間:2020-10-13 來源:黑馬程序員 瀏覽量:
在Linux系統(tǒng)上安裝Docker有3種方式,分別為在線安裝、離線安裝以及腳本文件安裝,其中最常用也是官方推薦的安裝方式就是在線安裝。接下來將在 Ubuntu16.04系統(tǒng)上分別針對這3種安裝方式進(jìn)行詳細(xì)講解。
由于在線安裝方式比較容易,且后期升級維護(hù)相對方便,所以對于大多數(shù)開發(fā)者而言,通常會選擇在線安裝 Docker。這種安裝方式需要先設(shè)置一個 Docker 倉庫,然后通過該倉庫進(jìn)行安裝和后續(xù)更新。
1.設(shè)置Docker倉庫
在新的主機(jī)上初次安裝Docker CE之前,必須先設(shè)置Docker存儲庫,其步驟如下。
(1)更新apt的索引包。
$ sudo apt-get update
需要注意的是,在執(zhí)行 apt 更新完成后,終端可能會返回如“Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'”的子流程錯誤信息,這個錯誤是在Ubuntu16.04系統(tǒng)下更新apt時內(nèi)部出現(xiàn)的問題,并不影響后續(xù)Docker的安裝和使用,所以這個問題可以直接忽略。
(2)安裝軟件包允許apt通過HTTPS方式使用Docker倉庫。
$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
(3)添加Docker官網(wǎng)的GPG key。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
(4)添加Docker穩(wěn)定的倉庫源(根據(jù)Ubuntu鏡像版本的不同進(jìn)行選擇安裝)。
amd64:
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
armhf:
$ sudo add-apt-repository \ "deb [arch=armhf] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
s390x:
$ sudo add-apt-repository \ "deb [arch=s390x] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
2.安裝Docker CE
設(shè)置好Docker倉庫之后,就可以從存儲庫中安裝和更新Docker,其實現(xiàn)步驟如下。
(1)更新apt的索引包。
$ sudo apt-get update
(2)安裝不同版本的 Docker。在安裝 Docker 時,通常會根據(jù)個人情況選擇安裝不同的版本。為此,Docker提供了兩種安裝方式,一是安裝默認(rèn)的最新版本的Docker,二是安裝指定版本的Docker,具體如下。
·安裝最新版本的Docker,具體指令如下。
$ sudo apt-get install docker-ce
需要注意的是,執(zhí)行上述指令后,之前存在的任何版本的Docker都會被替換。
·安裝指定版本的Docker,具體指令如下。
$ sudo apt-get install docker-ce=
從上述指令可以看出,安裝指定版本的 Docker 時,需要通過“=”將版本字符串附加到安裝包后。
為了更好地選擇指定版本的Docker,可以使用apt-cache madison指令查看Docker倉庫中的Docker版本信息,具體指令如下。
$ apt-cache madison docker-ce
執(zhí)行上述指令后,就會顯示出當(dāng)前Docker倉庫提供的在線的Docker的版本信息,具體效果下圖所示。
圖中列表中的內(nèi)容依賴于啟用的存儲庫,其中第二列是版本字符串,第三列是存儲庫名稱,用于指示安裝包來自哪個存儲庫。
(3)安裝完成后,可以使用sudo docker run hello-world指令運(yùn)行測試,具體指令如下。
$ sudo docker run hello-world
在沒有網(wǎng)絡(luò)或者網(wǎng)絡(luò)條件較差的情況下,我們可以選擇離線安裝Docker(使用DEB格式的安裝文件)。這種安裝方式的好處是不依賴于網(wǎng)絡(luò),但其缺點是后期使用時需要手動升級和維護(hù),并且每次升級時都需要下載一個新的.deb文件。
1.下載離線安裝文件
通過官方提供的地址 https://download.docker.com/linux/ubuntu/dists/,下載安裝 Docker的.deb文件,訪問該地址后的效果如下圖所示。
Docker的離線安裝文件地址
上圖中,需要選擇自己機(jī)器所對應(yīng)的Ubuntu版本。由于本書使用的是Ubuntu Xenial 16.04 (LTS)版本,所以要單擊圖中的 xenial 鏈接并進(jìn)入到 pool/stable/目錄下,然后根據(jù)情況選擇amd64、armhf或者s390x版本的.deb文件,如下圖所示。
Docker的離線安裝文件下載目錄
2.使用離線文件安裝Docker
通過下載的.deb文件進(jìn)行Docker離線安裝非常簡單,只需要在Ubuntu系統(tǒng)的終端中執(zhí)行如下指令。
$ sudo dpkg -i /path/to/package.deb
需要注意的是,使用sudo dpkg –i指令安裝Docker時,一定要指定讀者下載的.deb文件所在地址,例如上面指令表示執(zhí)行/path/to/路徑下的package.deb文件。
在開發(fā)和測試環(huán)境下,我們還可以使用Docker官方提供的自動化腳本文件來安裝Docker,其中開發(fā)環(huán)境和測試環(huán)境下的腳本文件下載地址分別為 https://get.docker.com/和https://test.docker.com/。
需要注意的是,這種安裝方式是針對某些特定環(huán)境提供的,雖然使用此種方式可以快速地在非交互式的開發(fā)環(huán)境中安裝穩(wěn)定開發(fā)版本和測試版本的Docker CE,但是在實際環(huán)境下不推薦使用腳本文件來安裝 Docker,所以這里對于腳本文件的 Docker 安裝就不做具體介紹了,有興趣的讀者可以查看官網(wǎng)介紹,具體參考地址為 https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-using-the-convenience-script。
多學(xué)一招:Docker的開機(jī)啟動和添加當(dāng)前用戶可執(zhí)行權(quán)限
在Docker安裝完成后,開發(fā)者可以根據(jù)實際需求進(jìn)行其他一些相關(guān)設(shè)置,例如Docker開機(jī)啟動、當(dāng)前用戶可執(zhí)行Docker等,具體設(shè)置方式如下。
(1)配置Docker開機(jī)啟動
$ sudo systemctl enable docker
(2)配置當(dāng)前用戶執(zhí)行Docker權(quán)限(username是自己的用戶名)
$ sudo usermod -aG docker username
完成上述配置后,需要重啟Ubuntu系統(tǒng)來查看效果。
四、Docker安裝時的問題及解決方法
通常情況下,嚴(yán)格按照前面幾個小節(jié)的安裝要求和方式進(jìn)行Docker的安裝,基本就可以正常完成Docker的安裝,但在某些特殊情況下,安裝過程可能會出現(xiàn)一些問題或者錯誤,本小節(jié)將對容易出現(xiàn)的幾個問題給出解決方法。
1.Docker安裝連接中斷
Docker 的在線安裝方式需要連接外網(wǎng),所以對網(wǎng)速有一定的要求。在某些限網(wǎng)環(huán)境或者用網(wǎng)密集的情況下,很容易出現(xiàn)網(wǎng)速過慢、中斷連接的情況,如下圖所示:
Docker安裝連接中斷
從上圖看出,在安裝時出現(xiàn)了網(wǎng)絡(luò)連接速度過慢導(dǎo)致了下載安裝失敗的問題。
針對這種網(wǎng)速過慢的情況,建議開發(fā)者在網(wǎng)絡(luò)暢通的情況下重新下載安裝,或者使用他人提供的.deb文件進(jìn)行離線安裝,當(dāng)然也可以通過國內(nèi)其他平臺提供的Docker源進(jìn)行下載安裝。
2.Docker更新資源失敗
Docker執(zhí)行更新apt索引包并進(jìn)行安裝的過程中,可能會顯示無法獲取鎖等異常情況,如下圖所示。
上圖中問題的原因可能是由于另外一個程序(上次運(yùn)行安裝或更新沒有正常完成)正在使用該程序,從而導(dǎo)致資源被鎖不可用。
這種問題解決的辦法其實很簡單,只需要在系統(tǒng)終端執(zhí)行以下兩條指令即可。
猜你喜歡: