
dpig/cloudflare-cli本镜像提供了与Cloudflare服务交互的命令行工具(CLI),封装了访问Cloudflare API的核心能力,允许用户在容器环境中便捷地管理Cloudflare资源。无需在主机系统直接安装CLI工具,通过容器化方式即可完成Cloudflare相关配置与操作,适用于开发、测试及生产环境的自动化管理场景。
Zone.DNS、Zone.Settings等)。bashdocker run --rm cloudflare-cli --help
bash# 使用API令牌认证(推荐) docker run --rm -e CLOUDFLARE_API_TOKEN="your_api_token" cloudflare-cli version # 使用API密钥+***认证(旧版方式) docker run --rm -e CLOUDFLARE_EMAIL="your_email" -e CLOUDFLARE_API_KEY="your_api_key" cloudflare-cli version
bash# 列出指定域名的DNS记录(需替换Zone ID,可通过`list-zones`命令获取) docker run --rm -e CLOUDFLARE_API_TOKEN="your_api_token" cloudflare-cli dns list --zone-id "your_zone_id" # 添加DNS A记录 docker run --rm -e CLOUDFLARE_API_TOKEN="your_api_token" cloudflare-cli dns create \ --zone-id "your_zone_id" \ --name "subdomain.example.com" \ --type "A" \ --content "192.168.1.1" \ --ttl 300
bash# 清除指定域名的全部缓存 docker run --rm -e CLOUDFLARE_API_TOKEN="your_api_token" cloudflare-cli cache purge --zone-id "your_zone_id" --purge-everything
推荐使用API令牌认证,通过CLOUDFLARE_API_TOKEN环境变量传入:
bashdocker run --rm \ -e CLOUDFLARE_API_TOKEN="your_api_token" \ cloudflare-cli zone list # 列出账号下所有域名(Zone)
如需持久化配置或使用复杂策略,可将本地配置文件挂载至容器内默认配置路径(通常为/root/.cloudflare/config.yaml):
bashdocker run --rm \ -v /path/to/local/config.yaml:/root/.cloudflare/config.yaml \ cloudflare-cli dns list --zone-id "your_zone_id"
配置文件示例(config.yaml):
yamlapi_token: "your_api_token" default_zone_id: "your_default_zone_id" # 可选,设置默认Zone ID简化命令 timeout: 30 # API请求超时时间(秒)
创建docker-compose.yml文件,集成CLI工具至服务栈:
yamlversion: "3.8" services: cloudflare-cli: image: cloudflare-cli environment: - CLOUDFLARE_API_TOKEN=your_api_token - CLOUDFLARE_DEFAULT_ZONE_ID=your_zone_id # 可选,设置默认Zone ID volumes: - ./scripts:/scripts # 挂载本地脚本目录 command: /scripts/batch-update-dns.sh # 执行批量DNS更新脚本
启动服务:
bashdocker-compose up
| 变量名 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
CLOUDFLARE_API_TOKEN | Cloudflare API令牌,需包含对应操作权限 | 是 | - |
CLOUDFLARE_EMAIL | Cloudflare账号***(仅API密钥认证时使用) | 否 | - |
CLOUDFLARE_API_KEY | Cloudflare API密钥(仅API密钥认证时使用,不推荐,建议用API令牌) | 否 | - |
CLOUDFLARE_DEFAULT_ZONE_ID | 默认Zone ID,设置后可省略命令中的--zone-id参数 | 否 | - |
CLOUDFLARE_API_BASE_URL | Cloudflare API基础地址,通常无需修改 | 否 | [***] |
工具支持通过命令行参数覆盖默认配置,常用参数示例:
| 命令片段 | 描述 |
|---|---|
--zone-id <id> | 指定操作目标Zone ID(覆盖CLOUDFLARE_DEFAULT_ZONE_ID) |
--api-token <token> | 临时指定API令牌(覆盖环境变量CLOUDFLARE_API_TOKEN) |
--debug | 开启调试模式,输出API请求/响应详情 |
--output json | 设置输出格式为JSON,便于脚本解析 |
Zone.DNS权限,管理SSL需包含Zone.SSL权限。--dry-run参数(若工具支持)验证操作范围,避免误操作。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务