# Module: DOCKER

> Docker Daemon services, which allows you to pull-up stateless software in additional to PostgreSQL.
---

> Deploy docker on Pigsty managed nodes: [Configuration](#configuration) | [Administration](#administration) | [Playbook](#playbook) | [Dashboard](#dashboard) | [Parameter](#parameter)



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

## Concept

[Docker](https://www.docker.com/) is a popular container service which provides standardize software deliver solution.



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

## Configuration

Docker module is different from other modules, which does not require pre-configuration to install & enable.

Just run the [`docker.yml`](#dockeryml) playbook on any Pigsty managed node.

But if you wish to add docker daemon as prometheus monitoring target, you have to specify the [`docker_enabled`](/docs/reference/param/#docker_enabled) parameters on those nodes.




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

## Administration

### Using Mirrors

Consider using docker mirror registry, log in with:

```bash
docker login quay.io    # entering your username & password
```

### Monitoring

Docker monitoring is part ot [**`NODE`**](/docs/node) module's responsibility, to register docker target to prometheus.

You have to define [`docker_enabled`](/docs/reference/param/#docker_enabled) on nodes, then re-register them with:

```bash
./node.yml -l <selector> -t register_prometheus
```



### Compose Template

Pigsty has a series of built-in docker compose [templates](/docs/docker/).




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

## Playbook

There's one playbook to install docker on designated node:

* [`docker.yml`](#dockeryml): install docker daemon.


### `docker.yml`

The playbook [`docker.yml`](https://github.com/vonng/pigsty/blob/master/node-rm.yml) will install docker for the given node.

Subtasks of this playbook:

- docker_install   : install docker on nodes
- docker_admin     : add user to docker admin group
- docker_config    : generate docker daemon config
- docker_launch    : launch docker daemon systemd service
- docker_image     : load docker images from /tmp/docker/*.tgz if exists




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

## Parameter

There are 4 parameters about [`DOCKER`](/docs/reference/param#docker) module.

| Parameter                                             | Section             |   Type   | Level | Comment                                          |
|-------------------------------------------------------|---------------------|:--------:|:-----:|--------------------------------------------------|
| [`docker_enabled`](#docker_enabled)                   | [`DOCKER`](#docker) |   bool   |   C   | enable docker on this node?                      |
| [`docker_cgroups_driver`](#docker_cgroups_driver)     | [`DOCKER`](#docker) |   enum   |   C   | docker cgroup fs driver: cgroupfs,systemd        |
| [`docker_registry_mirrors`](#docker_registry_mirrors) | [`DOCKER`](#docker) | string[] |   C   | docker registry mirror list                      |
| [`docker_image_cache`](#docker_image_cache)           | [`DOCKER`](#docker) |   path   |   C   | docker image cache dir, `/tmp/docker` by default |

---

Section pages:

- [Metrics](/docs/docker/metric/): Pigsty Docker module metric list
- [FAQ](/docs/docker/faq/): Pigsty Docker module frequently asked questions
