模块:DOCKER

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

Docker 是流行的容器平台,提供了标准化的软件交付能力。 安装 | 下载 | 配置 | 管理 | 剧本 | 参数


概览

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

请注意,Docker 并不是 Pigsty 的 核心功能模块,默认也并不会在 Pigsty 安装过程中从互联网下载至本地。

您可以选择在有互联网环境的节点直接使用官方仓库进行在线安装,或者在没有互联网环境的节点上,通过 Pigsty 下载 Docker 软件包至本地软件源后使用。


安装

对于有互联网环境的节点,执行以下命令,可以在 Pigsty 托管的节点上添加 Docker 仓库并在线安装 Docker。

./node.yml -t node_install -e '{"node_repo_modules":"node,infra,docker","node_packages":["docker-ce,docker-compose-plugin"]}'

在这种情况下,您需要自行配置 Docker 的软件源,以及 Docker 的软件包名称。当然您也可以选择使用 Pigsty docker.yml 剧本对安装好的 Docker 进行进一步的配置。


下载

因此如果您的环境没有互联网访问,或者节点需要通过本地软件源来统一安装的 Docker 版本并加速部署,您需要将 Docker 的软件包添加到本地软件源中,以下命令会将 Docker 下载到本地软件源中:

./infra.yml -t repo_build -e '{"repo_modules":"node,docker","repo_packages":["docker-ce docker-compose-plugin"],"repo_extra_packages":[],"repo_url_packages":[]}'

配置

关于 Docker 模块,用户通常只需要关心一个参数 docker_enabled: true,决定是否在节点上安装 Docker。

带有此标记的节点,会在执行 docker.yml 剧本时,安装 Docker 软件包并启动 Docker 服务。

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

管理


剧本

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

docker.yml

在节点上安装 Docker 的任务 docker.yml 包含了以下子任务:

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

参数

docker_enabled: false             # enable docker on this node?
docker_cgroups_driver: systemd    # docker cgroup fs driver: cgroupfs,systemd
docker_registry_mirrors: []       # docker registry mirror list
docker_exporter_port: 9323        # docker metrics exporter port, 9323 by default
docker_image_cache: /tmp/docker   # docker image cache dir, `/tmp/docker` by default

docker_enabled

参数名称: docker_enabled, 类型: bool, 层次:C

是否在当前节点启用Docker?默认为: false,即不启用。

docker_cgroups_driver

参数名称: docker_cgroups_driver, 类型: enum, 层次:C

Docker使用的 CGroup FS 驱动,可以是 cgroupfssystemd,默认值为: systemd

docker_registry_mirrors

参数名称: docker_registry_mirrors, 类型: string[], 层次:C

Docker使用的镜像仓库地址,默认值为:[] 空数组。

您可以使用Docker镜像站点加速镜像拉取,下面是一些例子:

["https://mirror.ccs.tencentyun.com"]           # 腾讯云内网的镜像站点
["https://registry.cn-hangzhou.aliyuncs.com"]   # 阿里云镜像站点,需要登陆

如果拉取速度太慢,您也可以考虑:docker login quay.io 使用其他的 Registry。

docker_exporter_port

参数名称: docker_exporter_port, 类型: port, 层次:G

Docker 暴露指标使用的端口,默认为 9323

docker_image_cache

参数名称: docker_image_cache, 类型: path, 层次:C

本地的Docker镜像离线缓存包路径, 默认为 /tmp/docker

在该路径下以 tgz 结尾的文件会被逐个 load 到 Docker 中:

cat {{ docker_image_cache }}/*.tgz | gzip -d -c - | docker load



指标

Pigsty Docker 模块提供的完整监控指标列表与释义

常见问题

Pigsty Docker 模块常见问题答疑


Last modified 2024-08-26: add docker docs (35711b24)