

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立和管理 Lightsail 中的容器服務部署
<a name="amazon-lightsail-container-services-deployments"></a>

當您準備好在 Amazon Lightsail 容器服務上啟動容器時，請建立部署。部署是您希望在服務上啟動之容器的一組規格。容器服務一次可以有一個執行中的部署，而部署最多可有 10 個容器項目。您可以在建立容器服務的同時建立部署，也可在服務開始運作後建立部署。

**注意**  
如果您建立新的部署，則容器服務的現有使用率指標將會消失，並且只顯示目前新部署的指標。

如需有關容器服務的詳細資訊，請參閱 [Amazon Lightsail 中的容器服務](amazon-lightsail-container-services.md)。

**內容**
+ [先決條件](#creating-container-deployments-prerequisites)
+ [部署參數](#creating-container-deployments-parameters)
  + [容器項目參數](#creating-deployments-container-entry)
  + [公有端點參數](#creating-deployments-public-endpoint)
+ [容器之間的通訊](#communication-between-containers)
+ [容器日誌](#creating-deployments-container-logs)
+ [部署版本](#creating-deployments-versions)
+ [部署狀態](#creating-deployment-status)
+ [部署失敗](#creating-deployment-failures)
+ [檢視目前的容器服務部署](#view-container-service-deployment)
+ [建立或修改容器服務部署](#creating-container-service-deployment)

## 先決條件
<a name="creating-container-deployments-prerequisites"></a>

開始在容器服務中建立部署之前，請完成以下事前準備：
+ 在 Lightsail 帳戶中建立容器服務。如需詳細資訊，請參閱[建立 Amazon Lightsail 容器服務](amazon-lightsail-creating-container-services.md)。
+ 找出您在容器服務上啟動容器時要使用的容器映像。
  + 在公有登錄檔 (例如 Amazon ECR Public Gallery) 上尋找容器映像。如需詳細資訊，請參閱《Amazon ECR Public 使用者指南》**中的 [Amazon ECR Public Gallery](https://gallery.ecr.aws/)。
  + 在本機電腦上建立容器映像，然後將其推送到 Lightsail 容器服務。如需詳細資訊，請參閱下列指南：
    + [安裝軟體以管理 Amazon Lightsail 容器服務的容器映像](amazon-lightsail-install-software.md)
    + [建立容器服務映像](amazon-lightsail-creating-container-images.md)
    + [推送和管理容器映像](amazon-lightsail-pushing-container-images.md)

## 部署參數
<a name="creating-container-deployments-parameters"></a>

本節說明您可以為部署的容器項目和公有端點指定的參數。

### 容器項目參數
<a name="creating-deployments-container-entry"></a>

您可以在部署中新增最多 10 個容器項目。您可以為每個容器項目指定下列參數：

![Lightsail 主控台中的容器服務部署組態](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/container-service-deployment-config.png)

+ **Container name** (容器名稱) – 輸入容器的名稱。部署中所有容器的名稱不得重複，並且只能包含英數字元和連字號。連字號可以分隔單字，但不能位於名稱的頭尾。
+ **Source image** (來源映像) – 指定容器的來源容器映像。您可以指定下列來源的容器映像：
  + 公有登錄檔 (例如 Amazon ECR Public Gallery) 或一些其他公有容器映像登錄檔。

    如需有關 Amazon ECR Public 的詳細資訊，請參閱《Amazon ECR Public 使用者指南》**中的[什麼是 Amazon Elastic Container Registry Public？](https://docs.aws.amazon.com/AmazonECR/latest/public/what-is-ecr.html)。
  + 已從本機電腦將映像推送到容器服務。若要指定存放的映像，請選擇**選擇存放的映像**，然後選取要使用的映像。

    如果在本機電腦上建立容器映像，則可將其推送到容器服務，以便在建立部署時使用。如需詳細資訊，請參閱[為 Amazon Lightsail 容器服務建立容器映像](amazon-lightsail-creating-container-images.md)以及[推送和管理 Amazon Lightsail 容器服務上的容器映像](amazon-lightsail-pushing-container-images.md)。
+ **Launch command** (啟動命令) – 指定啟動命令以執行在建立容器時設定容器的 Shell 指令碼或 Bash 指令碼。啟動命令可以執行多項動作，例如新增軟體、更新軟體，或以某種其他方式設定容器。
+ **Environment variables** (環境變數) – 指定環境變數。這些變數是索引鍵值參數，可提供由容器執行的應用程式或指令碼的動態組態。
+ **Open ports** (開啟連接埠) – 指定要在容器上開啟的連接埠和通訊協定。您可以指定透過 HTTP、HTTPS、TCP 和 UDP 開啟任何連接埠。您必須為您打算用作容器服務公有端點的容器開啟 HTTP 或 HTTPS 連接埠。如需詳細資訊，請參閱本指南以下章節。

### 公有端點參數
<a name="creating-deployments-public-endpoint"></a>

您可以在部署中指定容器項目，作為容器服務的公有端點。公有端點容器上的應用程式可透過隨機產生的容器服務預設網域，在網際網路上公開存取。預設域的格式為 `https://{{<ServiceName>}}.{{<RandomGUID>}}.{{<AWSRegion>}}.cs.amazonlightsail.com`，其中 {{<ServiceName>}} 是容器服務名稱，{{<RandomGUID>}} 是 AWS 區域中針對您的 Lightsail 帳戶隨機產生的容器服務全域唯一識別符，而 {{<AWSRegion>}} 是建立容器服務所在的 AWS 區域。Lightsail 容器服務的公有端點僅支援 HTTPS，不支援 TCP 或 UDP 流量。一項服務只能以一個容器為公有端點。因此，請務必選擇託管應用程式前端的容器作為公有端點，而其他容器則在內部存取。

**注意**  
您可以對容器服務使用自己的自訂網域名稱。如需詳細資訊，請參閱[啟用和管理 Amazon Lightsail 容器服務的自訂網域](amazon-lightsail-enabling-container-services-custom-domains.md)。

您可以為部署和容器服務的公有端點指定下列參數：

![Lightsail 主控台中的容器服務公有端點](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/container-service-deployment-public-endpoint-config.png)

+ **Endpoint container** (端點容器) – 選取部署中將作為容器服務公有端點之容器的名稱。下拉式選單只會列出在部署中開啟 HTTP 或 HTTPS 連接埠的容器。
+ **Port** (連接埠) – 選取要用於公有端點的 HTTP 或 HTTPS 連接埠。下拉式選單只會列出在所選容器上開啟的 HTTP 和 HTTPS 連接埠。如果所選容器未設定為在初次啟動時支援 HTTPS 連線，請選取 HTTP 連接埠。
**注意**  
即使您將 HTTP 連接埠選為公有端點連接埠，容器服務的預設網域也會預設使用 HTTPS。原因在於容器服務的負載平衡器雖預設為 HTTPS，但又是使用 HTTP 與容器建立連線。  
容器服務的負載平衡器是以 HTTP 連接至容器，但會使用 HTTPS 來提供內容給使用者。
+ **Health check path** (運作狀態檢查路徑) – 在所選的公有端點容器上指定路徑，容器服務的負載平衡器會定期檢查路徑是否正常運作。
+ **Advanced health check settings** (進階運作狀態檢查設定) - 您可以為選取的公用端點容器設定下列運作狀態檢查設定：
  + **Health check timeout seconds** (運作狀態檢查逾時的秒數) - 等待運作狀態檢查回應的時間，以秒為單位。如果在這段時間內沒有收到任何回應，運作狀態檢查就會失敗。可以指定 2–60 秒。
  + **Health check interval seconds** (運作狀態檢查間隔秒) - 容器運作狀態檢查之間的約略間隔，以秒為單位。可以指定 5–300 秒。
  + **Health check success codes** (運作狀態檢查成功代碼) - 檢查來自容器的成功回應時所使用的 HTTP 碼。您可以指定介於 200 到 499 之間的值。可以指定多個值 (例如，200、202) 或值範圍 (例如，200–299)。
  + **Health check healthy threshold** (運作狀態檢查狀況良好閾值) - 將容器移至正常狀態所需要的連續運作狀態檢查成功次數。
  + **Health check unhealthy threshold** (運作狀態檢查狀況不良閾值) - 將容器移至狀況不良狀態所需要的連續運作狀態檢查失敗次數。

**私有網域**

所有容器服務也有格式如 `{{<ServiceName>}}.service.local` 的私有網域，其中 {{<ServiceName>}} 是容器服務名稱。使用私有域，從與您的服務相同 AWS 區域的另一個 Lightsail 資源中存取容器服務。如果您未在服務的部署中指定公有端點，則私有網域是存取容器服務的唯一方法。即使您未指定公有端點，系統仍會為容器服務產生預設網域，但在您嘗試瀏覽時會顯示 `404 No Such Service` 錯誤訊息。

若要使用容器服務的私有網域來存取特定容器，則必須指定容器的開放連接埠，以接受您的連線請求。若要執行此操作，可以將請求的網域變為此格式：`{{<ServiceName>}}.service.local:{{<PortNumber>}}`，其中 {{<ServiceName>}} 是容器服務名稱，{{<PortNumber>}} 是您想連接的容器的開放連接埠。例如，如果在名為 `container-service-1` 的容器服務上建立部署，並指定連接埠 `6379` 開啟的 Redis 容器，則請求的網域格式應該為 `{{container-service-1}}.service.local:{{6379}}`。

## 容器之間的通訊
<a name="communication-between-containers"></a>

使用環境變數，您可以開啟同一容器服務中的容器、不同容器服務中的容器之間或者容器與其他資源之間 (例如，容器和受管資料庫之間) 的通訊。

要在同一容器服務中開啟容器之間的通訊，請向引用 `localhost` 的容器部署新增一個環境變數，如下列範例所示。

![Lightsail 主控台中帶有 localhost 環境變數的容器部署](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-container-service-environment-variable-localhost.png)


要在不同容器服務中的容器之間開啟通訊，請將引用私有域的環境變量新增到容器部署中（例如`container-service-1.service.local`），如下列範例所示。

![Lightsail 主控台中帶有私有網域環境變數的容器部署](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-container-service-environment-variable-private-domain.png)


要開啟容器和其他資源之間的通訊，請向容器部署中新增引用資源的公有端點 URL 的環境變數。例如，Lightsail 受管資料庫的公有端點通常是 `ls-123abc.czoexamplezqi.us-west-2.rds.amazonaws.com`。因此，您應按如下範例所示在環境變數中引用它。

![Lightsail 主控台中帶有資源公有端點 URL 環境變數的容器部署](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/amazon-lightsail-container-service-environment-variable-service.png)


## 容器日誌
<a name="creating-deployments-container-logs"></a>

部署中每個容器都會產生日誌。容器日誌會提供在容器中執行的 *stdout* 和 *stderr* 程序串流。請定期存取容器日誌以診斷其操作。如需詳細資訊，請參閱[檢視 Amazon Lightsail 容器服務的容器日誌](amazon-lightsail-viewing-container-service-container-logs.md)。

## 部署版本
<a name="creating-deployments-versions"></a>

您在容器服務中建立的每個部署都會儲存為部署版本。如果修改現有部署的參數，容器會重新部署至服務，而經修改的部署會產生新部署版本。每個容器服務的最新 50 個部署版本會儲存下來。您可使用 50 個部署版本之中任一個，在相同的容器服務中建立新部署。如需詳細資訊，請參閱[檢視和管理 Amazon Lightsail 容器服務的部署版本](amazon-lightsail-container-services-deployment-versions.md)。

## 部署狀態
<a name="creating-deployment-status"></a>

部署在建立後可處於下列任一種狀態：
+ **Activating** (啟動中) – 部署處於啟動中狀態，並且正在建立容器。
+ **Active** (作用中) – 部署已建立成功，目前正在容器服務上執行。
+ **Inactive** (非作用中) – 先前成功建立的部署不再在容器上執行。
+ **Failed** (失敗) – 部署中指定的一或多個容器無法啟動，以致部署失敗。

## 部署失敗
<a name="creating-deployment-failures"></a>

如果部署中一或多個容器無法啟動，則部署就會失敗。如果部署失敗，而且容器服務上有先前的部署正在執行，則容器服務會將先前的部署保留為作用中的部署。如果不存在先前的部署，則容器服務會停在就緒狀態，無任何目前作用中的部署。

請檢視失敗部署的容器日誌，以診斷和排除問題。如需詳細資訊，請參閱[檢視 Amazon Lightsail 容器服務的容器日誌](amazon-lightsail-viewing-container-service-container-logs.md)。

## 檢視目前的容器服務部署
<a name="view-container-service-deployment"></a>

完成下列程序來檢視 Lightsail 容器服務上目前的部署。

1. 登入 [Lightsail 主控台](https://lightsail.aws.amazon.com/)。

1. 在左側導覽窗格中，選擇**容器**。

1. 選擇您要檢視目前部署之容器服務的名稱。

1. 在容器服務管理頁面上，選擇 **Deployments** (部署) 索引標籤。

   **Deployments** (部署) 頁面會列出目前的部署和部署版本。如果您尚未在容器服務中建立部署，則該頁面的兩個區段皆為空白。

## 建立或修改容器服務部署
<a name="creating-container-service-deployment"></a>

請完成下列程序，在 Lightsail 容器服務上建立或修改部署。無論是建立新部署或修改現有部署，容器服務都會將每個部署儲存為新的部署版本。如需詳細資訊，請參閱[檢視和管理 Amazon Lightsail 容器服務的部署版本](amazon-lightsail-container-services-deployment-versions.md)。

1. 登入 [Lightsail 主控台](https://lightsail.aws.amazon.com/)。

1. 在左側導覽窗格中，選擇**容器**。

1. 選擇您要建立或修改容器服務部署之容器服務的名稱。

1. 在容器服務管理頁面上，選擇 Deployments (部署) 索引標籤。

   **Deployments** (部署) 頁面會列出目前的部署和部署版本 (如果有)。

1. 請選擇下列其中一個選項：
   + 若容器服務具有現有的部署，則選擇 **Modify your deployment** (修改部署)。
   + 若容器服務尚未具有部署，則選擇 **Create a deployment** (建立部署)。

     部署表單隨即開啟，您可以在上面編輯現有的部署參數，或輸入新的部署參數。  
![Lightsail 主控台中的容器服務部署表單](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/container-service-deployment-form.png)

1. 輸入部署的參數。如需有關可指定之部署參數的詳細資訊，請參閱本指南前面的[部署參數](#creating-container-deployments-parameters)一節。

1. 選擇 **Add container entry** (新增容器項目)，以將多個容器項目新增至部署。部署可有最多 10 個容器項目。

1. 選擇部署中的容器項目，作為容器服務的公有端點。這包括指定 HTTP 或 HTTPS 連接埠、所選容器項目上的運作狀態檢查路徑，以及進階運作狀態檢查設定。如需詳細資訊，請參閱本指南前述的[公有端點參數](#creating-deployments-public-endpoint)。

1. 部署參數輸入完畢時，請選擇 **Save and deploy** (儲存和部署)，以在容器服務上建立部署。

   部署正在建立時，容器服務狀態會變更為 **Deploying** (部署中)。幾分鐘之後，容器服務狀態會根據部署狀態變更為下列其中一種狀態：
   + 如果部署成功，容器服務狀態會變更為 **Running** (執行中)，而部署狀態會變更為 **Active** (作用中)。如果您已在部署中設定公有端點，則可透過容器服務預設網域使用選為公有端點的容器。
   + 如果部署失敗，而且容器服務上有先前的部署正在執行，則容器服務狀態會變更為 **Running** (執行中)，容器服務會將先前的部署保留為作用中的部署。如果不存在先前的部署，則容器服務狀態會變更為 **Ready** (就緒)，且無任何目前作用中的部署。請檢視失敗部署的容器日誌，以診斷和排除問題。如需詳細資訊，請參閱《檢視 Amazon Lightsail 容器服務的容器日誌》。

**Topics**
+ [先決條件](#creating-container-deployments-prerequisites)
+ [部署參數](#creating-container-deployments-parameters)
+ [容器之間的通訊](#communication-between-containers)
+ [容器日誌](#creating-deployments-container-logs)
+ [部署版本](#creating-deployments-versions)
+ [部署狀態](#creating-deployment-status)
+ [部署失敗](#creating-deployment-failures)
+ [檢視目前的容器服務部署](#view-container-service-deployment)
+ [建立或修改容器服務部署](#creating-container-service-deployment)
+ [變更容器容量](amazon-lightsail-changing-container-service-capacity.md)
+ [管理部署版本](amazon-lightsail-container-services-deployment-versions.md)
+ [檢視容器日誌](amazon-lightsail-viewing-container-service-container-logs.md)