You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Registry配置Let's Encrypt报错:旧ACME API已弃用

Docker Registry 配置Let's Encrypt报错及解决方案

首先明确:Docker Registry项目没有被弃用,只是官方registry:2镜像内置的Let's Encrypt客户端仍在调用已废弃的ACME v1接口(acme-v01.api.letsencrypt.org),导致域名解析失败并触发报错。

解决办法

1. 手动指定ACME v2接口地址

通过环境变量REGISTRY_HTTP_TLS_LETSENCRYPT_SERVER强制使用当前有效的ACME v2端点,同时挂载本地目录解决容器内缓存文件写入权限问题:

docker run -d -p 443:5000 --name registry \
  -v /your/local/cache/dir:/etc/docker/registry \
  -e REGISTRY_HTTP_TLS_LETSENCRYPT_CACHEFILE=/etc/docker/registry/letsencrypt.json \
  -e REGISTRY_HTTP_TLS_LETSENCRYPT_EMAIL=admin@example.com \
  -e REGISTRY_HTTP_TLS_LETSENCRYPT_SERVER=https://acme-v02.api.letsencrypt.org/directory \
  registry:2

替换/your/local/cache/dir为你本地的实际目录,确保容器有写入权限。

2. 提前手动获取证书后挂载使用

放弃内置的自动证书获取功能,用certbot等工具手动生成Let's Encrypt证书,再挂载到容器中:

docker run -d -p 443:5000 --name registry \
  -v /path/to/your/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/fullchain.pem \
  -e REGISTRY_HTTP_TLS_KEY=/certs/privkey.pem \
  registry:2

确保/path/to/your/certs目录下存在fullchain.pem(证书链)和privkey.pem(私钥)文件。

3. 自行构建更新后的Registry镜像

如果需要长期使用内置的自动证书功能,可以从官方代码仓库拉取最新代码,修改默认ACME接口地址后自行构建镜像,确保适配最新的Let's Encrypt规范。

内容的提问来源于stack exchange,提问作者Kwiatko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 07:07:32