# configs configuration reference

顶级configs声明定义或引用可以被授予此stack中的服务的配置。配置的来源既可以是file也可以是external。

* file: 将使用指定路径中的文件内容创建config。
* external: 如果设置为true，则指定此config已创建。 Docker不会尝试创建它，如果它不存在，则会发生config未找到错误。
* name: Docker中的config对象的名称。该字段可用于引用包含特殊字符的configs。该名称按原样使用，不会使用stack名称来表示作用域。以3.5版文件格式引入。
* driver和driver\_opts: 一个自定义secret驱动程序的名称，以及作为键/值对传递的特定于驱动程序的选项。以3.8版文件格式引入，仅在使用docker stack时受支持。
* template\_driver: 要使用的模板驱动程序的名称，它控制是否以及如何将secret有效负载评估为模板。如果未设置驱动程序，则不使用任何模板。当前唯一支持的驱动程序是golang。以3.8版文件格式引入，仅在使用docker stack时受支持。

在这个示例中，当stack部署的时候，my\_first\_config会被创建为\<stack\_name>\_my\_first\_config, my\_second\_config已经存在于Docker中。

```
configs:
  my_first_config:
    file: ./config_data
  my_second_config:
    external: true
```

外部configs的另一个变体是当Docker中的config名称与服务中存在的名称不同。以下示例修改了前一个示例，以使用名称为redis\_config的外部config。

```
configs:
  my_first_config:
    file: ./config_data
  my_second_config:
    external:
      name: redis_config
```

在stack中，我们仍然需要为每一个服务进行config授权。
