創建並部署容器化應用
創建並部署容器化應用
以下是創建並部署容器化應用的步驟,以 Amazon ECS 為例,展示如何從構建 Docker 映像到在 ECS 上部署應用。
1. 準備 Docker 環境
- 安裝 Docker:
- 確保您已在本地環境中安裝 Docker。可以參考 Docker 官方文檔 安裝指南。
- 編寫 Dockerfile:
Dockerfile 是描述如何構建 Docker 映像的腳本。以下是一個簡單的 Node.js 應用 Dockerfile 範例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# 使用官方 Node.js 映像作為基礎 FROM node:14 # 設置工作目錄 WORKDIR /usr/src/app # 複製 package.json 和 package-lock.json COPY package*.json ./ # 安裝應用依賴 RUN npm install # 複製應用代碼 COPY . . # 暴露應用端口 EXPOSE 8080 # 定義啟動命令 CMD [ "node", "app.js" ]
- 構建 Docker 映像:
使用以下命令構建 Docker 映像:
1
docker build -t my-node-app .
- 測試 Docker 映像:
在本地運行 Docker 容器,確保應用正常工作:
1
docker run -p 8080:8080 my-node-app
2. 將 Docker 映像推送到容器註冊表
- 創建 Amazon ECR 存儲庫:
使用 AWS 管理控制台或 CLI 創建一個 Amazon ECR 存儲庫。AWS ECR 是一個完全托管的容器映像註冊表服務。
1
aws ecr create-repository --repository-name my-node-app
- 登錄到 ECR:
使用 Docker CLI 登錄到 Amazon ECR:
1
$(aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account-id>.dkr.ecr.<region>.amazonaws.com)
- 標記並推送 Docker 映像:
標記 Docker 映像並推送到 ECR 存儲庫:
1 2
docker tag my-node-app:latest <account-id>.dkr.ecr.<region>.amazonaws.com/my-node-app:latest docker push <account-id>.dkr.ecr.<region>.amazonaws.com/my-node-app:latest
3. 創建 ECS 任務定義
- 編寫任務定義:
在 AWS 管理控制台中,導航到 ECS 服務,創建新的任務定義。填寫所需的設定,包括容器映像 URI、端口映射和資源需求等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
{ "family": "my-node-app-task", "containerDefinitions": [ { "name": "my-node-app", "image": "<account-id>.dkr.ecr.<region>.amazonaws.com/my-node-app:latest", "memory": 512, "cpu": 256, "essential": true, "portMappings": [ { "containerPort": 8080, "hostPort": 8080 } ] } ] }
4. 創建並部署 ECS 服務
- 創建 ECS 集群:
- 在 AWS 管理控制台中,創建一個新的 ECS 集群。您可以選擇 EC2 模式或 Fargate 模式,這取決於您的需求。
- 創建 ECS 服務:
在 ECS 集群中創建一個新的服務,指定使用之前創建的任務定義,並設置所需的任務數量、負載均衡器(如果需要)等配置。
1
aws ecs create-service --cluster my-cluster --service-name my-node-app-service --task-definition my-node-app-task --desired-count 2
- 配置負載均衡器(可選):
- 如果需要,您可以創建和配置負載均衡器,以便在多個容器實例之間分配流量。
5. 驗證和監控
- 檢查應用狀態:
- 在 AWS ECS 控制台中檢查服務和任務的狀態,確保應用正確運行。
- 查看日誌:
- 使用 Amazon CloudWatch 查看應用日誌,監控應用的運行狀態和性能。
- 測試應用:
- 通過負載均衡器或直接訪問服務的 IP 地址來測試應用,確保它按照預期運行。
總結
這些步驟展示了如何從構建 Docker 映像開始,到將映像推送到 Amazon ECR,再到創建和部署容器化應用於 Amazon ECS 的過程。通過使用 Docker 和 ECS,您可以實現應用的高效管理和擴展,並利用 AWS 的全套服務來支持您的容器化應用程式。
本文章以 CC BY 4.0 授權