返回部落格

在 CentOS 7 上安裝與設定 Docker

在 CentOS 7 上安裝與設定 Docker

簡介

Docker 是一個讓在容器中運行和管理應用程式流程變得更容易的平台。它提供了一種將您的應用程式與基礎架構分離的方法。容器與虛擬機器非常相似,但它們更輕便、高效且易於使用。有許多種方法可以在 Linux 發行版上安裝 Docker。在現有作業系統上安裝 Docker 最熱門且簡單的方法是使用 yum 指令。

本教學將示範如何在幾步簡單的步驟中,於 CentOS 7 上設定並使用 Docker。

先決條件:

您在本教學中執行的所有指令都是以非 root 使用者身分執行,如有必要,將使用 sudo 關鍵字提供 root 存取權限。

步驟 1:在 CentOS 7 執行個體上設定 Docker

官方的 CentOS 7 套件庫可能沒有最新的 Docker 安裝套件。在本節中,您將從官方 Docker 套件庫安裝最新版本的 Docker。首先,您需要使用以下指令更新套件資料庫:

更新步驟完成後,執行以下指令以下載並安裝最新版本的 Docker:

Docker 現在已安裝,因此您可以透過執行以下指令來啟動 Docker 精靈程序:

若要驗證 Docker 精靈程序是否正在執行,請輸入以下內容:

systemctl status 指令的輸出應該與下方分享的輸出類似,這顯示它正在執行:

最後,為了確保 Docker 在您重新啟動電腦時自動啟動,請使用以下指令:

Docker 安裝為您提供了 Docker 服務以及用戶端公用程式(Docker 命令列用戶端)。在本教學的下一節中,您將能夠更實際地操作使用 Docker 指令。

您也可以參考我們的 關於如何在公有雲中的 Ubuntu 上安裝 & 操作 Docker 的深入教學.

步驟 2:在不使用 Sudo 前綴的情況下使用 Docker 指令

Docker 指令需要 root 權限才能執行。因此,如果您想執行這些指令,必須在它們前面加上 sudo。在安裝過程中,預設會建立一個 Docker 群組。如果您將使用者新增至該群組,則可以在不使用 sudo 的情況下執行 Docker 指令。嘗試在不使用 sudo 且未將使用者新增至群組的情況下執行 Docker 指令,將會產生類似於下方的輸出:

將您的使用者名稱新增至 Docker 群組將可確保您不必使用 sudo 來執行 Docker 指令:

若要將另一個使用者新增至 Docker 群組,您只需替換指令中的使用者名稱:

在本指南的其餘部分中,我們將假設所有指令都是由 Docker 使用者群組中的使用者執行的。如果不是這種情況,您可以在指令中使用 sudo 前綴。

步驟 3:執行 Docker 命令

現在您已安裝並執行 Docker,讓我們來看看一些命令,以熟悉 Docker 命令行公用程式。Docker 命令通常採用以下形式:

要尋找所有可用的子命令,您應該使用:

截至 Docker 20.10.3,可用的子命令完整清單包括:

You can use –help flag with a specific command to get more information about it:

To get detailed information about the system, use:

步驟 4:使用 Docker 映像檔

Docker 映像檔可以被稱為 Docker 容器的藍圖。這些映像檔通常是從 Docker Hub 拉取的,這是一個由 Docker 專案管理的註冊表。任何人都可以建立自己的映像檔並將其推送到 Docker Hub。因此,您可以輕鬆地在該註冊表中找到各種應用程式和作業系統發行版。讓我們嘗試一個簡單的程式,它將確認對 Docker Hub 的存取:

您應該會得到如下輸出,這表示 Docker 正在正常運作:

您可以使用 search 指令在 Docker Hub 上找到各種 Docker 映像檔。例如,請參閱以下指令以搜尋 CentOS 映像檔:

搜尋查詢將顯示與該子字串相符的所有映像檔列表。在您的情況下,輸出應該像這樣:

在搜尋結果中,有不同的欄位描述關於映像檔的資訊。OFFICIAL 欄位中的 OK 表示該映像檔是由應用程式背後的公司建立並支援的。一旦您確定了映像檔,您可以使用 Docker pull 指令將其下載到您的本機電腦:

下載映像檔後,您可以使用 Docker run 指令執行容器。如果您直接嘗試在未事先下載的情況下執行映像檔,Docker 將會下載該映像檔,然後執行容器:

您可以使用以下指令列出已下載到本機電腦的映像檔:

您應該會得到類似的輸出:

在本教學的後面,您將能夠修改映像檔以執行容器。這些新的映像檔可以新增或推送到 Docker Hub 以及其他託管 Docker 映像檔的註冊中心。

步驟 5:以互動方式執行容器

有不同類型的容器。您在 步驟 4 中執行的 hello-world 容器是一種在列印訊息後執行並退出的容器。另一種容器類型是互動式容器。您可以像使用虛擬機器一樣使用互動式容器。

讓我們從最新的 CentOS 映像檔建立一個容器。在 Docker run 指令中使用 -i 和 -t 旗標將提供對 CentOS 容器的互動式存取:

命令提示字元將會改變,它應該看起來像下面的輸出:

現在您執行的任何指令都將在容器內部執行。這類似於在虛擬機器中執行指令。讓我們嘗試安裝 MySQL 伺服器到 CentOS 容器中。您可以使用以下指令來執行此操作:

步驟 6:將容器中的變更提交為 Docker 映像檔

啟動容器後,您可以執行在類似虛擬機器中可以執行的所有操作,例如建立/修改檔案或設定應用程式。請注意,這些變更僅會保留在該容器中,在您銷毀容器後,您所做的變更將會遺失。

在本教學的這個部分中,您將學習如何從已進行變更的容器中建立新的 Docker 映像檔。在 Step5 之後,您將擁有一個運行中且已安裝 MySQL 伺服器的 CentOS 容器。此容器現在與純 CentOS 映像檔不同。您可以儲存此容器狀態以便日後使用。首先,您需要使用以下指令退出容器:

使用以下指令將您在容器中所做的變更提交到新的 Docker 映像檔中:

在指令中,-m 指的是提交訊息,基本上應該表示所做的變更,-a 標籤用於提及作者。Container-id 是來自 Step5,這是您在互動模式下執行容器後取得的,通常,repository 是您在 Docker Hub 的使用者名稱。例如:

現在映像檔已提交,Docker images 指令應該會列出新的映像檔以及舊的映像檔:

指令的輸出應該類似如下:

如範例所示,使用來自 Docker Hub 的 CentOS 映像檔建立了一個新的映像檔 centos-mysql。大小的差異表示已進行了一些變更。在此範例中,是在容器中新增了 MySQL 伺服器。下次如果您需要一個帶有 MySQL 伺服器的容器,您只需執行新的映像檔,瞧!您就擁有一個運行中且預先安裝了 MySQL 伺服器的 CentOS 容器。

步驟 7:管理 Docker 容器

現在您已經熟悉 Docker,在使用一段時間後,您應該已經有一些運行中和一些未作用的容器。要取得作用中容器的清單,您應該使用:

您應該會看到類似的輸出:

若要列出所有作用中和非作用中的容器,您應該在命令中使用 -a 旗標:

若要尋找您最後建立的容器,可以提供 -l 旗標:

若要停止執行中/作用中的容器,請執行以下簡單命令:

您可以在 Docker ps 命令的輸出中找到 container-id。

步驟 8:將映像檔發佈到儲存庫

建立新映像檔後的下一步是與您的朋友分享。您也可以使用 Docker Hub 或任何其他登錄庫將其開放給全世界。在推送映像檔之前,您需要登入相應的登錄庫。

在本教學的下一部分中,您將學習如何將映像檔推送至 Docker Hub。首先,在 Docker Hub 上註冊。您需要登入 Docker Hub 才能使用以下命令推送您的映像檔:

輸入正確的密碼且驗證成功後,您就可以推送映像檔。若要推送映像檔,請使用以下命令:

該命令的輸出將類似於以下內容:

推送映像檔後,它應該會顯示在您帳戶的儀表板上,如下圖所示:

docker account dashboard

如果出現類似的失敗情況,很可能是因為您尚未登入:

您可以登入並重新嘗試推送。

結論

您可以使用許多種方式來利用 Docker。本教學應該為您提供了足夠的入門資訊。由於 Docker 是一個非常熱門的專案,您可以從專案的部落格頁面.

您也可以查看我們其他的 Docker 教學,以深入了解您可以使用 Docker 做些什麼:

祝您運算愉快!

author

Pranay Kapgate

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的創意設計師,專注於透過傳統與創新行銷渠道建立一致的企業形象。他擅長將藝術願景與策略行銷相融合,創造具有影響力的品牌敘事。

留言

目前尚無留言。成為第一個留言的人吧。