Configure
Configure your docker setup
Pigsty includes built-in Docker support, allowing you to quickly deploy containerized applications.
Quick Start
To install docker on nodes, set the docker_enabled parameter to true.
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 groupThen run the docker.yml playbook (on target hosts/groups):
./docker.yml -l infraDocker will be installed on that infra group.
Registry
You can specify docker registry mirrors with docker_registry_mirrors:
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 parameter if specified.
You can define it on global parameters all.vars or dedicate groups (such as infra ):
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:
{
"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 and docker_image_cache:
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 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 glob list will be loaded into docker with docker load
Accelerate
You can use accelerators on each cloud vendors: