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

# 部署容器服务

> 在团队的代理上运行长期运行的容器。

本页讲解创建并部署容器服务。关于概念概览见
[容器服务](/zh/cloud/concepts/containers)。
侧边栏必须出现 **容器** 入口 —— 如果没有，说明
此部署未启用容器服务 —— 请联系你的团队管理员。

## 开始之前

* 一个代理可访问的 OCI/Docker 镜像。公共镜像仓库
  可用；私有镜像仓库需在代理上配置凭证。
* 你的服务在容器内监听的端口。
* 一个你所属的团队，并具备管理服务的管理员权限。

## 创建服务

1. 打开侧边栏中的 **容器**。

2. 点击 **创建服务**。

3. 填写表单：

   | 字段        | 说明                                          |
   | --------- | ------------------------------------------- |
   | Slug      | 小写、3–100 个字符、字母/数字/连字符。会用于 API 路径。不可修改。     |
   | 显示名       | 人类可读的标签。                                    |
   | 描述        | 给团队成员看的可选说明。                                |
   | Docker 镜像 | `repo/image:tag` 或 `image@sha256:...`。      |
   | 暴露端口      | 容器监听的端口（1–65535）。默认为 `8080`。                |
   | 健康路径      | Cloud 探测健康状态时使用的 HTTP 路径。默认为 `/health`。     |
   | 环境变量      | 传入容器的键/值对。                                  |
   | 卷         | 宿主路径 → 容器路径的挂载（用于共享模型、持久化状态）。               |
   | 必需标签      | 承载此服务所需的代理标签。                               |
   | GPU 数量    | `0`（无，默认）、正整数表示具体数量，或 `-1` 表示"宿主机上的全部 GPU"。 |
   | 副本数       | 要保持运行的实例数（1–10）。                            |

4. 点击 **创建**。服务会以 **created** 状态出现在列表中
   （定义已保存，但尚未调度任何副本）。

## 部署

在服务详情页点击 **部署**。状态会通过
**deploying → running** 推进，代理拉取镜像并且健康探测开始通过。
如果没有副本变得健康，服务会进入 **failed**。

副本会分布在符合条件的代理上。如果你请求的副本数多于
符合条件的代理数，多出来的会保持 pending，直到更多带有匹配标签的
代理上线。

## 更新

* **编辑** —— 修改定义字段。镜像、暴露端口和卷的更改通常需要
  重新部署才能在运行中的副本生效。
* **取消部署** —— 停止副本。定义会保留；你可以稍后重新部署，
  无需重新输入。
* **删除** —— 移除定义。先停止副本。

## 可观测性

详情页显示：

* 每个实例的状态以及健康探测结果。
* 运行中副本的日志。

## 故障排查

**卡在 `deploying`** —— 代理在拉取镜像，或健康探测失败。
检查代理的日志；常见原因是代理上缺少私有镜像仓库的
凭证，或健康路径返回了非 2xx。

**Crash-loop** —— 容器的主进程在退出。
从详情页查看该副本的日志。

**未被领走** —— 服务的必需标签没有匹配任何代理。
在服务表单和 **代理** 页面上比较标签。

## 相关

* [容器服务](/zh/cloud/concepts/containers) —— 概念。
* [代理](/zh/cloud/concepts/agents) —— 谁来承载容器，
  以及标签如何工作。
