
nginxproxy/acme-companion或DNS-01验证方式。DNS-01验证)。HTTP-01验证失败。HTTPS_METHOD=nohttp配置。如果无法满足这些要求,可使用DNS-01验证方式。详情请参考文档。
此外,请确保您的DNS提供商正确响应CAA记录请求。若DNS提供商响应错误,Let's Encrypt将不会为您的域名颁发证书。Let's Encrypt不要求域名设置CAA记录,只需DNS提供商正确响应即可。
!schema
nginx-proxy容器必须声明两个可写卷,以便与acme-companion容器共享:
/etc/nginx/certs:存储证书和私钥(nginx-proxy容器为只读)。/usr/share/nginx/html:写入http-01验证文件。此外,acme-companion容器需声明第三个卷以存储acme.sh配置和状态:/etc/acme.sh。
另请阅读数据持久化文档。
使用示例:
启动nginx-proxy并声明两个额外卷:
shell$ docker run --detach \ --name nginx-proxy \ --publish 80:80 \ --publish 443:443 \ --volume certs:/etc/nginx/certs \ --volume html:/usr/share/nginx/html \ --volume /var/run/docker.sock:/tmp/docker.sock:ro \ nginxproxy/nginx-proxy
将主机的docker socket(/var/run/docker.sock)挂载到容器内的/tmp/docker.sock是nginx-proxy的要求。
启动acme-companion容器,通过--volumes-from获取nginx-proxy的卷:
shell$ docker run --detach \ --name nginx-proxy-acme \ --volumes-from nginx-proxy \ --volume /var/run/docker.sock:/var/run/docker.sock:ro \ --volume acme:/etc/acme.sh \ --env "DEFAULT_EMAIL=***" \ nginxproxy/acme-companion
该容器也需挂载主机docker socket,路径为/var/run/docker.sock。
虽然可选,但建议通过DEFAULT_EMAIL环境变量提供有效的默认***,以便Let's Encrypt在证书过期时提醒您并允许账户恢复。
当nginx-proxy和acme-companion容器均启动后,启动需代理的容器时,需设置VIRTUAL_HOST和LETSENCRYPT_HOST环境变量,值为该容器使用的域名。
VIRTUAL_HOST控制nginx-proxy的代理配置,LETSENCRYPT_HOST控制acme-companion的证书创建和SSL启用。
只有同时设置VIRTUAL_HOST和LETSENCRYPT_HOST且域名正确解析到主机、主机可公开访问时,才会颁发证书。
shell$ docker run --detach \ --name your-proxied-app \ --env "VIRTUAL_HOST=subdomain.yourdomain.tld" \ --env "LETSENCRYPT_HOST=subdomain.yourdomain.tld" \ nginx
被代理容器必须暴露需代理的端口,可通过Dockerfile的EXPOSE指令或docker run/docker create的--expose标志实现。
若被代理容器监听并暴露的端口非默认80,可通过VIRTUAL_PORT环境变量强制nginx-proxy使用该端口。
例如使用Grafana(暴露并监听3000端口):
shell$ docker run --detach \ --name grafana \ --env "VIRTUAL_HOST=othersubdomain.yourdomain.tld" \ --env "VIRTUAL_PORT=3000" \ --env "LETSENCRYPT_HOST=othersubdomain.yourdomain.tld" \ --env "LETSENCRYPT_EMAIL=***" \ grafana/grafana
对其他需代理的容器,重复步骤3即可。
请查看文档部分。



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