返回部落格

在 CentOS 7 上安裝 Docker Compose

在 CentOS 7 上安裝 Docker Compose

Docker 化重新定義了軟體產業中的部署和自動化流程。自其誕生以來,Docker 團隊一直致力於讓自動化部署變得無縫。容器化技術 不僅能實現快速的應用程式開發與高效率,還能節省時間和精力。編排、定義和運行多容器應用程式等無與倫比的功能,使 Docker 成為開發人員的首選。

Docker 容器與映像檔

當您深入了解 Docker 時,溫習基礎知識是必不可少的。如果您沒有使用 Docker 的經驗,理解它的運作方式可能會有些困難。在本節中,我們將定義一些對初學者至關重要的概念。如果您認為自己已經熟悉這些概念,可以隨時跳過並進入下一節。您也可以查看我們的解釋 Docker 基本概念的完整指南.

  • Docker 映像檔

Docker 映像檔是唯讀檔案的集合。一旦建立 Docker 映像檔,您就無法修改它們,但允許刪除。我們根據需求使用 Docker 映像檔來建立一個或多個 Docker 容器。要檢查系統中運行的映像檔數量,請使用以下指令:

當您從遠端註冊伺服器(如Docker Hub)拉取映像檔時,您正在下載檔案和資料夾。要拉取映像檔,請使用以下指令:

  • Docker 容器

Docker 映像檔是 Docker 容器的藍圖。技術上來說,Docker 容器是 Docker 映像檔的執行個體。想像一下,如果 Docker 映像檔就像父母,那麼 Docker 容器就是孩子。與只能建立一次的 Docker 映像檔不同,您可以使用單個映像檔建立多個容器。要檢查系統中運行的映像檔清單,請使用以下指令:

要拉取容器,請使用以下指令:

  • Docker 映像檔與容器如何運作

Docker 映像檔和容器攜手合作,釋放 Docker 的潛力。單個容器是透過 run 指令使用 Docker 映像檔建立的。當您建立 Docker 容器時,會建立一個稱為「容器層」(Container Layer)的新層。新建立的層包含應用程式及其相依性。您建立的每個容器都有不同的讀/寫容器層,且在 Docker 容器中所做的任何變更都會自動反映在容器層上。請記住,如果您選擇刪除容器,您也將失去該容器層。

向 Docker Compose 問好

Docker Compose 是一款容器管理工具,可讓您將所有 Docker 容器配置和編排到單個 YAML 檔案中。使用此工具,啟動、停止以及建立容器間的連結和資料卷都變得更加容易。

  • Docker Compose 的作用是什麼?

簡單來說,Docker Compose 透過消除衝突和組織問題,使複雜的任務變得更容易。它允許使用者集中管理不同的 Docker 容器。換句話說,Docker Compose 不是將所有服務都放在一個大型容器中,而是將一個服務拆分為多個服務,以便使用者可以毫不費力地存取和管理它們。

在本指南中,我們將引導您完成安裝目前版本的 Docker Compose 的步驟,以便在 CentOS 7 上管理多容器應用程式。我們還將介紹成功使用該軟體所需的一些基本指令.

  • 如何使用 Docker Compose

使用 Docker Compose 非常簡單,即使對新手來說也是如此。讓我們來看看 Docker Compose 涉及的三個步驟:

1. 建置 (Build):首先,根據您的專案需求在 Dockerfile 中建置映像檔,或者從註冊伺服器中拉取。

2. 定義 (Define):接下來,您需要在 compose.yml 檔案中定義所有元件服務。

3. 運行 (Run):定義好元件後,就可以使用 docker-compose 指令來運行了。

先決條件

Before we move forward with installing Docker Compose on your CentOS server, make sure you have:

您現在已準備就緒。接下來,請按照以下步驟在 CentOS 7 上安裝 Docker Compose。

步驟 1:安裝 Docker Compose

要獲取最新版本的 Docker Compose,請按照以下指南中的說明操作:Docker 文件 並從以下位置下載二進位檔案:Docker’s GitHub 儲存庫。透過執行以下命令來檢查您是否擁有最新版本的軟體:

要使該二進位檔案可執行,請設定以下權限:

接下來,查詢您的版本以檢查安裝是否成功:

以下程式碼將印出已安裝的版本:

docker-compose --version

然後,您可以使用已安裝的 Docker Compose 執行 “Hello World” 範例。

步驟 2:使用 Docker Compose 執行容器

Docker Hub(公開的 Docker 登錄庫)中有一個 “Hello World” 映像檔,可用於示範和測試。它展示了如何使用最少的設定透過 Docker Compose 執行容器。首先,您需要為我們的 YAML 檔案建立一個目錄:

接下來,移動到此目錄:

然後,使用您偏好的文字編輯器產生 YAML 檔案。在本教學課程中,我們將使用 Vi:

按下 i 進入插入模式,然後在檔案中輸入以下內容:

在容器名稱中,將合併第一行。第二行指示程式應使用哪個映像檔來建立容器。docker-composeup 將在您輸入命令時尋找名為 hello-world 的本機映像檔以檢查其是否可用。要退出插入模式,請按 ESC。然後,輸入 :x 並按 ENTER 以儲存並退出檔案。可以使用 docker images 命令手動檢查您機器上的映像檔:

當完全沒有本機映像檔時,只會顯示欄位標題:

Docker Compose on CentOS 6

要建立容器,請在仍處於 /hello-world 目錄:

當您第一次執行該命令且沒有名為 hello-world 的本機映像檔時,它將從 Docker Hub 儲存庫下載:

sudo docker-compose up

為了確保安裝正常運作,Docker Compose 會拉取映像檔、建立容器、連接它並執行 hello 程式:

hello program

之後,會顯示所執行操作說明的列印輸出:

Docker Compose on CentOS 3

hello 完成其任務時,容器將關閉,且該命令將不再於容器中執行。查看作用中程序時將顯示欄位標題。然而,hello-world 容器將不會被列出,因為它目前並未運作:

sudo docker ps

要查看所有容器(而不僅僅是目前的容器),請使用 -a 旗標:

Docker Compose 2

既然您已經嘗試過執行容器,您可以繼續學習一些基本的 Docker Compose 命令。

步驟 3:Docker Compose 命令

為了協助您開始使用 Docker Compose,本節將介紹由 docker-compose 工具提供的基本命令。docker-compose 是一個以目錄為基礎運作的命令。透過為每個容器產生一個目錄,且每個目錄包含一個 docker-compose.yml 檔案,您可以在同一台電腦上執行多組 Docker 容器。

到目前為止,您一直是在自行運行 Docker Compose。您可以透過按下 Ctrl-C 來將其關閉。這能讓終端機視窗顯示除錯訊息。然而,在生產環境中運行時,建議將 docker-compose 作為服務運行。可以使用 -d 選項作為實現此目的的簡單方法:

現在,docker-compose 會在背景執行。您可以使用以下指令來管理您的 Docker 容器群組(無論是已停止還是執行中):

容器的 State 將會回報為 Exited(如果它已停止),如下面的範例所示:

Docker Compose on CentOS 5

目前正在運行的容器將會顯示:

您可以在與用來啟動 Docker 群組的 docker-compose.yml 檔案相同的目錄中,終止所有執行中的 Docker 容器:

Note:如果您需要更強制地關閉,也可以使用 docker-compose kill

在某些情況下,Docker 容器可能會在內部儲存其舊資料。如果您想重新開始,請使用 rm 指令從您的容器群組中移除所有容器:

在放置 Docker 容器和 .yml 檔案以外的其他目錄中執行這些指令,將會導致錯誤訊息:

在本節中,我們已經介紹了使用 Docker Compose 操作容器的基本知識。如前所述,如果您需要對容器進行額外的控制,在下一節中,您可以存取 Docker 檔案系統,並從容器內部的命令提示字元執行指令。

Step 4: Access the Docker Container Filesystem

可以使用命令列工具 docker exec 在容器中執行命令提示字元並存取容器的檔案系統。例如,執行 “Hello World” 並查看 docker exec 指令需要花費多長時間完成。為了本教學的目的,可以使用 Docker Hub image of Nginx。建立一個名為 nginx 的新目錄並進入其中:

您現在應該有一個 docker-compose.yml 檔案,您可以在文字編輯器中開啟它:

然後,在檔案中加入以下內容:

現在是關閉應用程式的時候了。要在背景啟動 Nginx 容器,請使用以下指令:

Docker Compose on CentOS 1

Docker Compose 將會下載 Nginx 映像檔並在背景執行容器。要繼續,您需要輸入容器的 CONTAINER ID。您可以使用以下指令檢視目前所有正在運行的容器:

您將會看到以下內容:

 Docker Compose on CentOS 4

如果您想使用 docker exec 來修改此容器內部的檔案系統,您可以使用該容器的唯一 ID(在此範例中為 f139d0d78ca7)在容器內建立一個 shell:

sudo docker exec -it

可以使用 -t 選項開啟互動式終端機,而 /bin/bash 則為容器提供 bash shell。在此之後,您將會看到該容器的 bash 提示字元:

在您的容器內,您將會看到命令提示字元。重新啟動容器將會覆寫您所做的任何變更,除非您是在已儲存為資料磁碟卷(data volume)一部分的目錄中工作。如果您習慣使用 Linux 命令行工具,您應該知道大多數 Docker 映像檔都是使用最基本的 Linux 安裝來製作的。

結論

我們已引導您完成在 CentOS 7 上安裝最新版本 Docker Compose 以管理多容器應用程式的步驟。Docker Compose 同時啟動和關閉大量容器的能力令人印象深刻。從範本到應用程式只需幾分鐘。因此,如果您的工作涉及同時執行多個容器,那麼繼續使用 Docker Compose 是一個極佳的選擇。然而,它並非萬能的解決方案。根據您的特定需求,您也可以找到一些更好的選擇,例如:Kubernetes.

若要進一步探索 Docker Compose 的強大功能,您可以參考這些教學課程,其來自我們的部落格:

祝您運算愉快!

author

Hark Labs

作者 · CloudSigma

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

留言

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