---
title: "部署第一個應用程式"
description: "通過 Nginx 示例完成建立分組、部署應用程式、發佈連接埠和驗證存取。"
---

> Documentation Index
> Fetch the complete documentation index at: https://cdelivery.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 部署第一個應用程式

本教程部署一個無需持久化資料的 Nginx Web 應用程式。完成後，你應該能在瀏覽器中看到 Nginx 歡迎頁。

## 開始之前

使用首次設定建立的 Admin 帳戶登入。伺服器需要能從 Docker Hub 下載映像檔，TCP 8080 應空閒並允許你的瀏覽器存取。

Operator 可以建立應用程式，但建立分組需要 Admin。使用已有分組時，可以直接進入該分組部署。

## 操作步驟

1. **建立分組**

   打開分組管理，建立：

   | 字段 | 示例 |
   | - | - |
   | 名稱 | `demo` |
   | 描述 | 入門示例 |

   名稱使用小寫字母、數字和連字符。分組會提供應用程式間通信網路，詳細規則見[分組管理](/docs/zh-tw/administration/groups/)。
2. **設定應用程式**

   在 `demo` 分組旁點擊建立應用程式，填寫：

   | 設定 | 值 |
   | - | - |
   | 名稱 | `hello-web` |
   | 映像檔 | `nginx:stable-alpine` |
   | 映像檔憑據 | 留空，使用公開映像檔 |
   | 啟動指令 | 留空，使用映像檔預設啟動方式 |
   | 副本 | 固定 1 |
   | 檔案與存儲 | 不添加資料卷或設定檔案 |
3. **發佈連接埠**

   在連接埠發佈設定中添加：

   | 協議 | 容器連接埠 | 發佈連接埠 |
   | - | - | - |
   | TCP | 80 | 8080 |

   這裡的 80 是 Nginx 在容器內監聽的連接埠，8080 是用戶端存取伺服器時使用的連接埠。映像檔用法參考 [Nginx 官方映像檔](https://hub.docker.com/_/nginx)。
4. **部署應用程式**

   檢查表單並建立應用程式，返回應用程式概覽後等待副本進入執行狀態。

## 驗證存取

在你的電腦上開啟 `http://SERVER_IP:8080`，或執行下方指令。將 `SERVER_IP` 替換為實際可達的伺服器地址。

```sh
curl -I http://SERVER_IP:8080
```

預期看到 Nginx 歡迎頁或 HTTP 200 回應。

遠端伺服器只允許 SSH 存取時，在你的電腦上執行：

```sh
ssh -L 9000:127.0.0.1:9000 -L 8080:127.0.0.1:8080 your-user@server.example.com
```

如果使用 SSH 隧道，保持連線開啟，改為在你的電腦上執行：

```sh
curl -i http://localhost:8080
```

## 遇到問題

| 現象 | 優先檢查 |
| --- | --- |
| 映像檔下載失敗 | 映像檔拼寫、Docker Hub 連通性、儲存庫限制及錯誤資訊 |
| 副本持續等待 | 伺服器狀態、可用資源及額外設定的調度條件 |
| 容器不斷重啟 | 應用程式日誌、是否誤填自訂啟動指令 |
| 副本執行但存取超時 | 8080 的防火牆規則、存取地址、隧道 |
| 連接被拒絕或回應異常 | 容器連接埠是否為 80、協議是否為 TCP |

## 下一步

- 閱讀[建立與部署](/docs/zh-tw/guides/apps/create/)，瞭解完整表單和模板。
- 使用[網域與路由](/docs/zh-tw/guides/networking/routing/)設定業務網域。
- 使用[設定檢查](/docs/zh-tw/guides/release-safety/xhealth/)驗證應用程式的實際回應。

完成練習後，可以按[刪除應用程式](/docs/zh-tw/guides/apps/delete/)移除 `hello-web`。這個示例未建立持久化資料卷。

Source: https://cdelivery.dev/docs/zh-tw/getting-started/first-app/index.mdx
