或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即可。
请查看文档部分。

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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