本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

docker-nginx-certbot 是一个集成了 Nginx 和 Certbot 的 Docker 镜像,旨在简化 HTTPS 部署流程。该镜像实现了自动化获取、配置和续期 Let's Encrypt SSL 证书,无需手动干预证书管理,让用户能够快速搭建支持 HTTPS 的 Web 服务。
docker run -d \ --name nginx-certbot \ -p 80:80 \ -p 443:443 \ -e "DOMAINS=example.com [***]" \ -e "EMAIL=***" \ -v ./nginx/conf.d:/etc/nginx/conf.d \ -v ./certbot/conf:/etc/letsencrypt \ -v ./certbot/www:/var/www/certbot \ jonasal/nginx-certbot
-p 80:80:映射 HTTP 端口(Let's Encrypt 验证需通过 80 端口)-p 443:443:映射 HTTPS 端口-e "DOMAINS=...":指定需要申请证书的域名,多个域名用空格分隔-e "EMAIL=...":Let's Encrypt 注册***(用于证书过期通知及恢复)./nginx/conf.d:本地 Nginx 配置目录,映射到容器内 /etc/nginx/conf.d./certbot/conf:本地证书存储目录,映射到容器内 /etc/letsencrypt(持久化证书)./certbot/www:Let's Encrypt 验证文件目录,映射到容器内 /var/www/certbot创建 docker-compose.yml 文件:
version: '3' services: nginx-certbot: image: jonasal/nginx-certbot container_name: nginx-certbot ports: - "80:80" - "443:443" environment: - DOMAINS=example.com [***] - EMAIL=*** - STAGING=0 # 1 启用测试环境(避免 Let's Encrypt 速率限制),0 禁用 volumes: - ./nginx/conf.d:/etc/nginx/conf.d - ./certbot/conf:/etc/letsencrypt - ./certbot/www:/var/www/certbot restart: unless-stopped
启动服务:
docker-compose up -d
| 环境变量 | 说明 | 默认值 |
|---|---|---|
DOMAINS | 需申请证书的域名,多个域名用空格分隔(必填) | 无 |
EMAIL | Let's Encrypt 注册***(用于证书通知及恢复,必填) | 无 |
STAGING | 是否使用 Let's Encrypt 测试环境(1=启用,0=禁用) | 0 |
CERTBOT_ARGS | 传递给 Certbot 的额外参数(如 --rsa-key-size 4096 指定密钥长度) | 无 |
RENEW_BEFORE | 证书到期前多少天开始续期(单位:天) | 30 |
NGINX_CONF | 自定义 Nginx 主配置文件路径(容器内路径) | /etc/nginx/nginx.conf |
./ ├── docker-compose.yml ├── nginx/ │ └── conf.d/ # Nginx 站点配置目录(需手动创建) │ └── example.conf # 自定义站点配置文件 └── certbot/ ├── conf/ # 证书存储目录(自动生成) └── www/ # Let's Encrypt 验证文件目录(自动生成)
./nginx/conf.d:/etc/nginx/conf.d:挂载自定义 Nginx 站点配置,需提前创建并添加站点配置文件(示例见下文)./certbot/conf:/etc/letsencrypt:持久化存储 Let's Encrypt 证书文件,避免容器重建后证书丢失./certbot/www:/var/www/certbot:Let's Encrypt ACME 验证文件存放目录,用于域名所有权验证./nginx/conf.d/example.conf)server { listen 80; server_name example.com [***] # 将 HTTP 请求重定向到 HTTPS location / { return 301 [***] } # Let's Encrypt 验证文件访问路径 location /.well-known/acme-challenge/ { root /var/www/certbot; } } server { listen 443 ssl; server_name example.com [***] # SSL 证书配置(证书由 Certbot 自动生成,路径固定) ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # 推荐的 SSL 安全配置(可选) ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; # 网站根目录(根据实际需求修改) root /usr/share/nginx/html; index index.html; location / { try_files $uri $uri/ =404; } }
若需为多个独立域名配置证书,可在 DOMAINS 中指定多个域名(空格分隔),并为每个域名创建对应的 Nginx 配置文件。例如:
environment: - DOMAINS=example.com [***] blog.example.com
DOMAINS 中指定的域名/.well-known/acme-challenge/ 路径)/etc/letsencrypt/live/<主域名>/ 目录RENEW_BEFORE 天数(默认 30 天)时,自动执行续期操作DOMAINS 中指定的域名已正确解析至主机 IPSTAGING=1)可避免触发限制docker exec nginx-certbot nginx -s reload 使配置生效./certbot/conf 目录,防止证书文件丢失导致服务中断免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429