CodeGym /Adesua ahorow /Docker SELF /啟動應用程式和服務

啟動應用程式和服務

Docker SELF
等級 15 , 課堂 3
開放

4.1 指令 docker compose up

指令 docker compose up 是 Docker Compose 中的核心指令,用於啟動在 compose.yaml 檔案中定義的多容器應用程式。它會自動建立並啟動所有在配置中指定的服務,配置網路並掛載卷。在這堂講座中,我們會詳細探討如何使用指令 docker compose up,其主要參數以及最佳實踐。

docker compose up 指令的主要功能

  1. 建立並啟動容器:指令 docker compose up 會建立並啟動在 compose.yaml 檔案 services 部分中列出的所有容器。
  2. 配置網路和卷:Docker Compose 會自動建立配置中所需的網路並掛載卷。
  3. 並行啟動服務:所有服務會同時啟動,加快多容器應用程式的啟動過程。
  4. 日誌監控:指令會即時輸出所有已啟動容器的日誌,便於監控狀態並快速發現問題。

docker compose up 指令的語法


docker compose up [options] [SERVICE...]

其中:

  • [options]: 設定指令行為的其他參數 (例如 --detach, --build, --scale)。
  • [SERVICE...]:(非必需)需啟動的服務清單。如果未指定,則會啟動所有服務。

4.2 範例 docker compose up

以下是使用 docker compose up 指令的範例:

1. 啟動所有服務

啟動檔案 compose.yaml 裡定義的所有服務:

Terminal

docker compose up

2. 啟動特定的服務

啟動特定的服務,例如 web

Terminal

docker compose up web

3. 在背景模式下啟動

如果想要讓所有服務在背景模式下運行,可以使用選項 -d (detached mode):

Terminal

docker compose up -d

使用這個選項後,指令會在容器啟動後立刻完成,容器會繼續在背景中運行。

4.3 命令 docker compose up 的參數

docker compose up 的一些有用參數:

1. 參數 --build

這個參數會讓 Docker Compose 在啟動容器之前重新構建映像檔。如果你修改了原始碼或 Dockerfile,這個參數就很有用。

Terminal

docker compose up --build

2. 參數 --force-recreate

參數 --force-recreate 會強制 Docker Compose 重建容器,即使它們的配置沒有改變。

Terminal

docker compose up --force-recreate

3. 參數 --no-recreate

參數 --no-recreate 防止重新創建已存在的容器,即使它們的配置已更改。

Terminal

docker compose up --no-recreate

4. 參數 --remove-orphans

這個參數會刪除那些沒有定義在當前 compose.yaml 檔案中的容器,但它們是由之前的 Docker Compose 運行創建的。

Terminal

docker compose up --remove-orphans

5. 參數 -V, --renew-anon-volumes

這些參數會讓 Docker Compose 重新創建匿名卷,而不是重複使用它們。

Terminal

docker compose up -V

4.4 範例和建議

使用指令 docker compose up 的不同選項範例:

範例 1:啟動應用程式並重建映像檔

這個範例在啟動容器之前會重建映像檔,這對於你已經更改了原始碼或 Dockerfile 的情況非常有用。

Terminal

docker compose up --build

範例 2:以後台模式啟動並重建容器

這個範例以後台模式啟動容器,並且即使設定未更改也會重建它們。

Terminal

docker compose up -d --force-recreate

範例 3:啟動特定服務並刪除不需要的容器

這個範例僅啟動服務 web,並刪除未在當前檔案 compose.yaml 中定義的容器。

Terminal

docker compose up web --remove-orphans

實際建議

1. 使用 .env 檔案

你可以使用檔案 .env 來定義環境變數,這些變數將在你的 compose.yaml 中使用。這有助於管理設定,並簡化在不同環境中的部署過程。

2. 日誌和監控

當你使用指令 docker compose up 啟動容器時,所有日誌都會顯示在控制台中。這讓你能夠跟蹤服務的狀態,並快速處理出現的問題。若需更詳細的監控,請使用指令 docker compose logsdocker compose ps

3. 自動化構建和部署

在自動化腳本或 CI/CD 流程中整合指令 docker compose up,有助於自動化多容器應用的構建和部署流程。例如,你可以配置 Jenkins 或 GitHub Actions,自動執行構建、部署,並在每次代碼更新時啟動 docker compose up

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION