
本镜像为 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 "admin@example.com" \ # 管理员邮箱(用于证书过期提醒) --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 admin@example.com --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 admin@example.com |
--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 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务