首頁技術文章正文

Linux系統(tǒng)如何安裝Docker?

更新時間:2020-10-13 來源:黑馬程序員 瀏覽量:

在Linux系統(tǒng)上安裝Docker有3種方式,分別為在線安裝、離線安裝以及腳本文件安裝,其中最常用也是官方推薦的安裝方式就是在線安裝。接下來將在 Ubuntu16.04系統(tǒng)上分別針對這3種安裝方式進行詳細講解。

一、Docker在線安裝教程

由于在線安裝方式比較容易,且后期升級維護相對方便,所以對于大多數(shù)開發(fā)者而言,通常會選擇在線安裝 Docker。這種安裝方式需要先設置一個 Docker 倉庫,然后通過該倉庫進行安裝和后續(xù)更新。

1.設置Docker倉庫

在新的主機上初次安裝Docker CE之前,必須先設置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時內部出現(xiàn)的問題,并不影響后續(xù)Docker的安裝和使用,所以這個問題可以直接忽略。

(2)安裝軟件包允許apt通過HTTPS方式使用Docker倉庫。

$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common

(3)添加Docker官網的GPG key。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

(4)添加Docker穩(wěn)定的倉庫源(根據(jù)Ubuntu鏡像版本的不同進行選擇安裝)。

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

設置好Docker倉庫之后,就可以從存儲庫中安裝和更新Docker,其實現(xiàn)步驟如下。

(1)更新apt的索引包。

$ sudo apt-get update


(2)安裝不同版本的 Docker。在安裝 Docker 時,通常會根據(jù)個人情況選擇安裝不同的版本。為此,Docker提供了兩種安裝方式,一是安裝默認的最新版本的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

Docker版本信息


執(zhí)行上述指令后,就會顯示出當前Docker倉庫提供的在線的Docker的版本信息,具體效果下圖所示。


Docker測試效果圖

圖中列表中的內容依賴于啟用的存儲庫,其中第二列是版本字符串,第三列是存儲庫名稱,用于指示安裝包來自哪個存儲庫。

(3)安裝完成后,可以使用sudo docker run hello-world指令運行測試,具體指令如下。

$ sudo docker run hello-world

二、Docker離線安裝教程

在沒有網絡或者網絡條件較差的情況下,我們可以選擇離線安裝Docker(使用DEB格式的安裝文件)。這種安裝方式的好處是不依賴于網絡,但其缺點是后期使用時需要手動升級和維護,并且每次升級時都需要下載一個新的.deb文件。

1.下載離線安裝文件

通過官方提供的地址 https://download.docker.com/linux/ubuntu/dists/,下載安裝 Docker的.deb文件,訪問該地址后的效果如下圖所示。

Docker的離線安裝文件地址
Docker的離線安裝文件地址

上圖中,需要選擇自己機器所對應的Ubuntu版本。由于本書使用的是Ubuntu Xenial 16.04 (LTS)版本,所以要單擊圖中的 xenial 鏈接并進入到 pool/stable/目錄下,然后根據(jù)情況選擇amd64、armhf或者s390x版本的.deb文件,如下圖所示。

Docker的離線安裝文件下載目錄

Docker的離線安裝文件下載目錄

2.使用離線文件安裝Docker

通過下載的.deb文件進行Docker離線安裝非常簡單,只需要在Ubuntu系統(tǒng)的終端中執(zhí)行如下指令。

$ sudo dpkg -i /path/to/package.deb

需要注意的是,使用sudo dpkg –i指令安裝Docker時,一定要指定讀者下載的.deb文件所在地址,例如上面指令表示執(zhí)行/path/to/路徑下的package.deb文件。

三、Docker腳本文件安裝

在開發(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 安裝就不做具體介紹了,有興趣的讀者可以查看官網介紹,具體參考地址為 https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-using-the-convenience-script。

多學一招:Docker的開機啟動和添加當前用戶可執(zhí)行權限

在Docker安裝完成后,開發(fā)者可以根據(jù)實際需求進行其他一些相關設置,例如Docker開機啟動、當前用戶可執(zhí)行Docker等,具體設置方式如下。

(1)配置Docker開機啟動

$ sudo systemctl enable docker

(2)配置當前用戶執(zhí)行Docker權限(username是自己的用戶名)

$ sudo usermod -aG docker username

完成上述配置后,需要重啟Ubuntu系統(tǒng)來查看效果。

四、Docker安裝時的問題及解決方法

通常情況下,嚴格按照前面幾個小節(jié)的安裝要求和方式進行Docker的安裝,基本就可以正常完成Docker的安裝,但在某些特殊情況下,安裝過程可能會出現(xiàn)一些問題或者錯誤,本小節(jié)將對容易出現(xiàn)的幾個問題給出解決方法。

1.Docker安裝連接中斷

Docker 的在線安裝方式需要連接外網,所以對網速有一定的要求。在某些限網環(huán)境或者用網密集的情況下,很容易出現(xiàn)網速過慢、中斷連接的情況,如下圖所示:

Docker安裝連接中斷

Docker安裝連接中斷

從上圖看出,在安裝時出現(xiàn)了網絡連接速度過慢導致了下載安裝失敗的問題。

針對這種網速過慢的情況,建議開發(fā)者在網絡暢通的情況下重新下載安裝,或者使用他人提供的.deb文件進行離線安裝,當然也可以通過國內其他平臺提供的Docker源進行下載安裝。

2.Docker更新資源失敗

Docker執(zhí)行更新apt索引包并進行安裝的過程中,可能會顯示無法獲取鎖等異常情況,如下圖所示。

Docker更新資源失敗

上圖中問題的原因可能是由于另外一個程序(上次運行安裝或更新沒有正常完成)正在使用該程序,從而導致資源被鎖不可用。

這種問題解決的辦法其實很簡單,只需要在系統(tǒng)終端執(zhí)行以下兩條指令即可。


猜你喜歡:

Docker的底層技術介紹

Docker的具體架構介紹

DDocker教程:企業(yè)級應用容器化實踐之容器鏡像倉庫

傳智播客java培訓課程

分享到:
在線咨詢 我要報名
和我們在線交談!