本镜像为 Electronic Frontier Foundation (EFF) ***构建的 Certbot Docker 镜像,集成了 DigitalOcean DNS 插件。主要用于通过 DNS-01 挑战(DNS-01 challenge)自动化获取和续期 Let's Encrypt SSL/TLS 证书,适用于使用 DigitalOcean 作为 DNS 服务提供商的用户。
*.example.com)申请证书。*.example.com)或跨子域名批量申请证书。dns:edit 权限的个人访问令牌(Personal Access Token),用于操作 DNS 记录。以下示例通过 docker run 命令申请证书,使用环境变量传入 DigitalOcean API 令牌:
bashdocker run --rm \ -v /etc/letsencrypt:/etc/letsencrypt \ # 挂载证书存储目录(持久化证书和配置) -v /var/log/letsencrypt:/var/log/letsencrypt \ # 挂载日志目录 -e DO_API_TOKEN="your_digitalocean_api_token" \ # DigitalOcean API 令牌(必填) certbot/dns-digitalocean \ certonly \ # 仅申请证书(不自动配置服务器) --dns-digitalocean \ # 启用 DigitalOcean DNS 插件 --dns-digitalocean-token-env DO_API_TOKEN \ # 指定 API 令牌环境变量名 --email "***" \ # 管理员***(用于证书过期提醒) --agree-tos \ # 同意 Let's Encrypt 服务条款 --no-eff-email \ # 不向 EFF 发送邮件(可选) -d "example.com" \ # 目标域名(可重复 -d 参数添加多个域名) -d "*.example.com" # 通配符域名(需 DNS-01 挑战支持)
通过 docker-compose.yml 定义服务,实现证书申请与续期自动化:
yamlversion: '3' services: certbot: image: certbot/dns-digitalocean volumes: - ./letsencrypt:/etc/letsencrypt # 本地目录挂载,持久化证书和配置 - ./logs:/var/log/letsencrypt # 日志目录 - ./credentials:/etc/certbot/credentials # 凭证文件目录(可选,替代环境变量) environment: - TZ=Asia/Shanghai # 时区设置(可选) command: > certonly --dns-digitalocean --dns-digitalocean-credentials /etc/certbot/credentials/digitalocean.ini # 凭证文件路径 --email *** --agree-tos --non-interactive # 非交互式模式(适合脚本/定时任务) --keep-until-expiring # 仅在证书即将过期时续期 -d example.com -d *.example.com
凭证文件示例(./credentials/digitalocean.ini,需设置权限 chmod 600):
inidns_digitalocean_token = your_digitalocean_api_token
| 参数 | 说明 | 示例 |
|---|---|---|
certonly | 仅申请证书,不自动配置 Web 服务器 | certonly |
--email | 管理员***(用于证书通知) | --email *** |
--agree-tos | 同意 Let's Encrypt 服务条款 | --agree-tos |
--non-interactive | 非交互式运行(适合自动化脚本) | --non-interactive |
-d | 目标域名(可重复指定多个) | -d example.com -d test.com |
--dry-run | 测试模式(不实际申请证书) | --dry-run |
| 参数 | 说明 | 示例 |
|---|---|---|
--dns-digitalocean | 启用 DigitalOcean DNS 插件 | --dns-digitalocean |
--dns-digitalocean-token | 直接指定 DigitalOcean API 令牌(不推荐,明文暴露) | --dns-digitalocean-token "token" |
--dns-digitalocean-token-env | 从环境变量读取 API 令牌 | --dns-digitalocean-token-env DO_TOKEN |
--dns-digitalocean-credentials | 从文件读取 API 令牌(推荐,更安全) | --dns-digitalocean-credentials /path/to/ini |
--dns-digitalocean-propagation-seconds | DNS 记录传播等待时间(默认 10 秒) | --dns-digitalocean-propagation-seconds 30 |
dns:edit 权限,否则无法添加/删除 TXT 记录。600,仅 root 可读写)。volumes 挂载本地目录存储 /etc/letsencrypt,避免容器删除导致证书丢失。docker run --rm ... renew)定期执行证书续期,例如:
bash# 每日凌晨 3 点执行续期检查 0 3 * * * docker run --rm -v /etc/letsencrypt:/etc/letsencrypt certbot/dns-digitalocean renew --non-interactive
/var/log/letsencrypt 目录查看详细日志定位问题。来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429