akamai/dnsakamai/cli-dns Docker镜像是Akamai DNS CLI工具的容器化封装,基于akamai/cli-dns项目构建。该镜像提供轻量级、隔离的环境,用于通过命令行管理Akamai DNS服务,无需在本地系统安装依赖(如Node.js、API客户端等)。适用于需要快速部署、环境隔离或自动化DNS管理流程的场景。
.edgerc文件中(获取方法)从Docker Hub或私有仓库拉取镜像:
bashdocker pull akamai/cli-dns:latest # 拉取最新版本 # 或指定版本(如v3.0.0) docker pull akamai/cli-dns:v3.0.0
bashdocker run --rm [选项] akamai/cli-dns dns <子命令> [参数]
--rm:容器退出后自动清理[选项]:挂载文件、环境变量等配置dns <子命令>:CLI核心命令(如list-zones、add-record)Akamai CLI通过.edgerc文件或环境变量进行API认证,推荐使用.edgerc文件(更安全):
方法1:挂载.edgerc文件(推荐)
将本地.edgerc文件挂载到容器内默认路径(/root/.edgerc):
bash# 示例:列出所有DNS区域 docker run --rm -v $(pwd)/.edgerc:/root/.edgerc akamai/cli-dns dns list-zones
方法2:环境变量认证
通过环境变量传递API凭证(适用于无法挂载文件的场景):
bashdocker run --rm \ -e AKAMAI_CLIENT_TOKEN="your-client-token" \ -e AKAMAI_CLIENT_SECRET="your-client-secret" \ -e AKAMAI_ACCESS_TOKEN="your-access-token" \ akamai/cli-dns dns list-zones
bashdocker run --rm -v $(pwd)/.edgerc:/root/.edgerc akamai/cli-dns dns list-zones
bashdocker run --rm -v $(pwd)/.edgerc:/root/.edgerc akamai/cli-dns dns get-zone --zone example.com
bashdocker run --rm -v $(pwd)/.edgerc:/root/.edgerc akamai/cli-dns dns add-record \ --zone example.com \ --type A \ --name www \ --target 192.168.1.1 \ --ttl 300
bashdocker run --rm \ -v $(pwd)/.edgerc:/root/.edgerc \ -v $(pwd)/records.csv:/data/records.csv \ akamai/cli-dns dns import-records --zone example.com --input /data/records.csv
bash# 添加CNAME记录并验证 docker run --rm -v $(pwd)/.edgerc:/root/.edgerc akamai/cli-dns dns add-record \ --zone example.com \ --type CNAME \ --name blog \ --target cdn.example.com \ --ttl 600 && \ echo "记录添加成功,查询结果:" && \ docker run --rm -v $(pwd)/.edgerc:/root/.edgerc akamai/cli-dns dns get-record \ --zone example.com \ --name blog \ --type CNAME
创建docker-compose.yml:
yamlversion: '3' services: akamai-dns-cli: image: akamai/cli-dns:latest volumes: - ./.edgerc:/root/.edgerc # 挂载认证文件 - ./dns-scripts:/scripts # 挂载自定义脚本(如批量操作脚本) environment: - EDGERC_SECTION=dns # 指定.edgerc中的配置节(默认:dns) command: /scripts/batch-update.sh # 执行自定义批量更新脚本
运行:
bashdocker-compose up
| 变量名 | 描述 | 默认值 |
|---|---|---|
EDGERC_SECTION | 指定.edgerc中的配置节名称 | dns |
AKAMAI_CLIENT_TOKEN | Akamai API客户端令牌(替代.edgerc) | 无 |
AKAMAI_CLIENT_SECRET | Akamai API客户端密钥(替代.edgerc) | 无 |
AKAMAI_ACCESS_TOKEN | Akamai API访问令牌(替代.edgerc) | 无 |
| 本地路径 | 容器内路径 | 用途 |
|---|---|---|
./.edgerc | /root/.edgerc | Akamai API认证配置文件 |
./records.csv | /data/records.csv | 批量导入/导出DNS记录的CSV文件 |
./scripts/ | /scripts/ | 自定义操作脚本 |
DNS Write权限(管理记录)或DNS Read权限(查询)。latest标签获取最新兼容版本)。600(仅所有者可读),避免容器内权限错误。-e DEBUG=true环境变量可启用详细API日志,用于故障排查。





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务