Path: 宝塔面板 API 参考 › Docker

`POST /mod/docker/com/create_app/stype`

从应用商店安装 Docker 应用（如 WordPress、MySQL、Redis 等）。

## Request body

_Required._

- `opPostModDockerComCreateAppStype.request_time` (string, required) — Unix 时间戳；与接口密钥一起生成 request_token。
- `opPostModDockerComCreateAppStype.request_token` (string, required) — 按 API 概览中的双重 MD5 签名算法生成。

## Example request

```text
{
  "request_time": "string",
  "request_token": "string"
}
```

## Code samples

### cURL（填写面板地址与签名）

```curl
curl --request POST \
  --url "https://your-panel.example.com:8888/mod/docker/com/create_app/stype" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "request_time=<Unix时间戳>" \
  --data-urlencode "request_token=<按 API 概览生成的签名>"
```

## Responses

### default

接口响应，业务状态见下方详细说明。

#### Example

```json
{
  "code": 0,
  "status": true,
  "msg": "应用创建成功,请耐心等待应用初始化,可能需要等待1-5分钟..."
}
```


## create_app

从应用商店安装 Docker 应用（如 WordPress、MySQL、Redis 等）。

**所有应用的安装参数均来源于 [get_apps](/api/docker/get_apps) 返回值**。

- **路由**：`POST /mod/docker/com/create_app/stype`
- **方法**：POST

## 参数来源

1. 先调用 [get_apps](/api/docker/get_apps) 获取应用列表
2. 找到目标应用，从以下字段获取参数：
   - `appversion` → `m_version`(主版本)、`s_version`(子版本)
   - `env[].key` → 安装参数名（如 `wordpress_port`、`mysql_port`）
   - `field[].attr` → UI 配置参数名（如 `allow_access`、`domain`）
   - `depend` → 依赖应用列表，需先安装

## 通用参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| app_name | 是 | String | 应用名称（来自 `get_apps[].appname`） |
| service_name | 是 | String | 服务实例名称（唯一） |
| m_version | 是 | String | 主版本号（来自 `get_apps[].appversion[].m_version`） |
| s_version | 是 | String | 子版本号（来自 `get_apps[].appversion[].s_version`） |
| allow_access | 是 | String | `"1"` 允许外网访问 |
| cpus | 否 | String | CPU 限制 |
| memory_limit | 否 | String | 内存限制（MB） |
| disable_domain | 否 | String | `"1"` 不绑定域名（建站类应用跳过域名检查） |

### 应用专属参数

根据 `get_apps` 返回的 `env` 和 `field` 数组中的 `key`/`attr` 值，每个应用有不同的参数：

- MySQL：`mysql_port`（端口）、`mysql_root_password`（root密码）
- WordPress：`wordpress_port`（端口）、`domain`（域名）
- Redis：`redis_port`（端口）、`redis_password`（密码）
- 等等...

## 示例

### 安装 MySQL

```bash
# 1. 从 get_apps 获取 mysql 的参数定义
POST /mod/docker/com/get_apps/stype

# 2. 根据 env/field 组装参数创建
POST /mod/docker/com/create_app/stype
app_name=mysql&service_name=docker_mysql&m_version=8&s_version=0&allow_access=1&mysql_port=3308&cpus=1&memory_limit=512
```

### 响应

```json
{"code": 0, "status": true, "msg": "应用创建成功,请耐心等待应用初始化,可能需要等待1-5分钟..."}
```

## 相关接口

- [get_apps](/api/docker/get_apps) — 获取应用列表及参数定义
- [get_dependence_apps](/api/docker/get_dependence_apps) — 查询依赖应用安装状态

