# 模块：DOCKER

> Docker Daemon 服务，允许用户一键拉起容器化的无状态软件工具模板，加装各种功能。
---

> 在节点部署 Docker： [配置](#配置) | [管理](#管理) | [剧本](#剧本) | [参数](#参数)


----------------

## 概念

[Docker](https://www.docker.com/) 是流行的容器平台，提供了标准化的软件交付能力。

尽管我们不赞成将 Docker 用于有状态的重要数据库上，但它对于无状态的应用软件而言是一个相当优雅的解决方案


----------------

## 配置

Docker 模块不同于其他模块，不需要事先配置，您只需要针对 Pigsty 配置文件中任意被纳管的现有节点执行 [`docker.yml`](#dockeryml) 剧本，即可完成 Docker 的安装。

您可以在全局/集群/节点层面声明 [**`docker_enabled`**]，则主机节点在被纳入监控时，Docker Daemon 的监控指标也一并会被抓取。

```yaml
# ./infra.yml  -l infra
# ./docker.yml -l infra (optional)
# ./node.yml   -l infra -t register_prometheus
infra:
  hosts:
    10.10.10.10: { infra_seq: 1 ,nodename: infra-1 }
    10.10.10.11: { infra_seq: 2 ,nodename: infra-2 }
  vars:
    docker_enabled: true
    node_id_from_pg: false
    node_cluster: infra
    node_conf: oltp
```

----------------

## 管理

### 使用镜像站点

如果您在中国大陆受到功夫网影响，可以考虑使用墙内可用的 Docker 镜像站点，例如 quay.io：

```bash
docker login quay.io    # 输入用户名密码，完成登陆
```

### 纳入监控

如果您希望将 Docker 纳入现有监控体系中，首先应当在节点上声明参数 [`docker_enabled`](/zh/docs/reference/param/#docker_enabled) 为 `true`。

然后针对节点单独执行监控目标注册任务 `register_prometheus` 即可：

```bash
./node.yml -l <your-node-selector> -t register_prometheus  # 将 Docker Daemon 纳入 Prometheus 监控目标中
```


### 使用软件模板

Pigsty 提供了一系列使用 Docker Compose 拉起的软件[工具模板](/zh/docs/docker/)，可以开箱即用。




----------------

## 剧本

Pigsty 提供了一个用于安装 Docker 模块的剧本

* [`docker.yml`](#dockeryml)：在指定节点上安装 Docker。


### `docker.yml`

在节点上安装 Docker 的任务 [`docker.yml`](https://github.com/vonng/pigsty/blob/master/node-rm.yml) 包含了以下子任务：

```bash
docker_install   : 在节点上安装 Docker，Docker Compose 软件包
docker_admin     : 将指定的用户加入 Docker 管理员用户组中
docker_config    : 生成 Docker 守护进程服务配置文件
docker_launch    : 启动 Docker 守护进程服务
docker_image     : 尝试从 /tmp/docker/*.tgz 加载镜像（如果存在）
```



----------------

## 参数

[`DOCKER`](/zh/docs/reference/param#docker) 模块有 4 个参数：

| 参数                                                              |                参数组                | 类型          | 层次    | 中文说明                                                                            |
|-----------------------------------------------------------------|:-----------------:|:---------------------------------:|-------------|-------|---------------------------------------------------------------------------------|
| [`docker_enabled`](#docker_enabled)                             |        [`DOCKER`](#docker)        | bool        | C     | 在当前节点上启用 Docker？默认不启用                                                           |
| [`docker_cgroups_driver`](#docker_cgroups_driver)               |        [`DOCKER`](#docker)        | enum        | C     | Docker CGroup 文件系统驱动：cgroupfs,systemd                                           |
| [`docker_registry_mirrors`](#docker_registry_mirrors)           |        [`DOCKER`](#docker)        | string[]    | C     | Docker 仓库镜像列表                                                                   |
| [`docker_image_cache`](#docker_image_cache)                     |        [`DOCKER`](#docker)        | path        | C     | Docker 镜像缓存目录：默认为`/tmp/docker`                                                  |

---

本节页面：

- [指标列表](/zh/docs/docker/metric/): Pigsty Docker 模块提供的完整监控指标列表与释义
- [常见问题](/zh/docs/docker/faq/): Pigsty Docker 模块常见问题答疑
