# Configure

> Configure your docker setup
---

Pigsty includes built-in [**Docker**](https://www.docker.com/) support, allowing you to quickly deploy containerized applications.


--------

## Quick Start

To install docker on nodes, set the [`docker_enabled`](/docs/docker/param#docker_enabled) parameter to `true`.

```yaml
all:
  vars:

    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  # Install Docker on this group
```

Then run the [`docker.yml`](/docs/docker/playbook) playbook (on target hosts/groups):

```bash {title="~/pigsty"}
./docker.yml -l infra
```

Docker will be installed on that `infra` group.


--------

## Registry

You can specify docker registry mirrors with [`docker_registry_mirrors`](/docs/docker/param#docker_registry_mirrors):

```yaml
all:
  vars:
    docker_registry_mirrors: ["https://docker.1ms.run"]
```

Here are some example registry mirrors:

- Alibaba Cloud: `["https://registry.cn-hangzhou.aliyuncs.com"]`
- Tencent Cloud: `["https://ccr.ccs.tencentyun.com"]`
- DaoCloud: `["https://docker.m.daocloud.io"]`
- 1Ms: `["https://docker.1ms.run"]`

You can specify multiple registry mirrors as an array, remember to quote the URL with `"`.


--------

## Proxy

Docker will use the [`proxy_env`](/docs/infra/param#proxy_env) parameter if specified.

You can define it on global parameters `all.vars` or dedicate groups (such as `infra` ):

```bash
all:
  vars:
    proxy_env:
      no_proxy: "localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16,*.pigsty,*.aliyun.com,mirrors.*"
      http_proxy: 'http://127.0.0.1:12345'
      https_proxy: 'http://127.0.0.1:12345'
      all_proxy: 'http://127.0.0.1:12345'
```

It will be rendered to `/etc/docker/daemon.json` during the `docker_config` task:

```json
{
  "proxies": {
    "http-proxy": "127.0.0.1:12345",
    "https-proxy": "127.0.0.1:12345",
    "no-proxy": "localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16,*.pigsty,*.aliyun.com,mirrors.*,*.tsinghua.edu.cn"
  }
}
```

This is useful if direct network access is blocked due to various reasons.



--------

## Images

You can provision docker images with [`docker_image`](/docs/docker/param#docker_image) and [`docker_image_cache`](/docs/docker/param#docker_image_cache):

```yaml
infra:
  hosts:
    10.10.10.10: { infra_seq: 1 }
  vars:
    docker_enabled: true
    docker_image:
      - redis:latest
    docker_image_cache: "/tmp/docker/*.tgz"
```

The images defined in [`docker_image`](/docs/docker/param#docker_image) will be pulled during the `docker_image` task, one by one.
And the local docker image cache with `.tgz` suffix matching the [`docker_image_cache`](/docs/docker/param#docker_image_cache) glob list will be loaded into docker with `docker load`



--------

## Accelerate

You can use accelerators on each cloud vendors:

- Aliyun ACR : https://cr.console.aliyun.com/cn-shanghai/instances/mirrors
