前言
- 基于certbot-letencrypt-wildcardcertificates-alydns-au项目封装为docker镜像,
- 感谢 ywdblog 的源码
- 镜像支持一键生成证书、证书到期续订、证书更新后自动重启用到证书的服务等功能。
- 如不想使用docker方式申请可使用原作者脚本生成。
- 此镜像支持
arm64
、amd64
主机。 - 镜像地址:loganjindev/certbot
镜像简介
- [x] 镜像名:
loganjindev/certbot:v1.0.0
- [x] 基础镜像:
ubuntu:20.04
- [x] 用户:
root
- [x] 时区:
Asia/Shanghai
- [x] 字符集:
LANG=C.UTF-8
- [x] python编码:
PYTHONIOENCODING=utf-8
- [x] 软件:预装
certbot
、git
、cron
、vim
- [x] 可配置环境变量:
CRONTAB、RENEWAL、DEPLOY_HOOK、EMAIL、CLOUD_TYPE、ALY_KEY、ALY_TOKEN、TXY_KEY、TXY_TOKEN、HWY_KEY、HWY_TOKEN、GODADDY_KEY、GODADDY_TOKEN、DOMAIN_NAME_LIST
- [x] 镜像截图:
环境变量注释
-
DOMAIN_NAME_LIST:
需要注册的域名列表,多个域名用","隔开,例:example.com,example2.com,example3.com
-
CRONTAB:
此变量主要功能为自定义配置续订证书的定时任务命令,默认值为空不设置定时任务,多个定时任务 \n 隔开
-
RENEWAL:
证书到期是否续订,默认值为yes续订,值可选yes/no
-
DEPLOY_HOOK:
续费成功要重启的服务,比如重启nginx容器:docker exec -it nginx service nginx restart,如不需要重启则不用配置此变量
-
EMAIL:
申请证书要用到的邮箱地址
-
CLOUD_TYPE:
使用云解析dns类型,可选 aly/txy/hwy/godaddy(阿里云、腾讯云、华为云、GoDaddy) 四种类型
-
ALY_KEY:
阿里云 AccessKey ID
-
ALY_TOKEN:
阿里云 AccessKey Secret
-
TXY_KEY:
腾讯云 AccessKey ID
-
TXY_TOKEN:
腾讯云 AccessKey Secret
-
HWY_KEY:
华为云 AccessKey ID
-
HWY_TOKEN:
华为云 AccessKey Secret
-
GODADDY_KEY:
GoDaddy AccessKey ID
-
GODADDY_TOKEN:
GoDaddy AccessKey Secret
快速安装docker
- 如未安装docker的用户请查看此篇博客:https://www.loganjin.cn/article/docker-install/
阿里云dns解析示例
- 拉取镜像:
docker pull loganjindev/certbot:v1.0.0
- 执行命令
docker run -itd --name certbot \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ --user root \ -e DEPLOY_HOOK="docker restart nginx" \ -e ALY_KEY="xxxxxxxxxxxxxxxx" \ -e ALY_TOKEN="xxxxxxxxxxxxxxxx" \ -e EMAIL="xxxxxx@126.com" \ -e CLOUD_TYPE="aly" \ -e DOMAIN_NAME_LIST="*.example.cn,*.example.com,*.example.net" \ -v /etc/letsencrypt/archive/:/etc/letsencrypt/archive/ \ loganjindev/certbot:v1.0.0 # 命令解析: # 以下三行主要用来在docker容器内操作其他容器的服务,如不需要重启其他容器服务则不需要加这三行命令 -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ --user root \ # 在容器内重启其他容器内的nginx服务 -e DEPLOY_HOOK="docker restart nginx" \ # 阿里云的Key 和 Secret,xxxxxxxxxxxxxxxx 替换为你个人的 -e ALY_KEY="xxxxxxxxxxxxxxxx" \ -e ALY_TOKEN="xxxxxxxxxxxxxxxx" \ # 你的个人邮箱申请证书用 -e EMAIL="xxxxxx@126.com" \ # 云解析类型 当前选择是阿里云 -e CLOUD_TYPE="aly" \ # 需要申请证书域名列表 -e DOMAIN_NAME_LIST="*.example.cn,*.example.com,*.example.net" \ # 证书生成目录,如其他容器要用到此证书直接挂载此目录即可 -v /etc/letsencrypt/archive/:/etc/letsencrypt/archive/ \ # 镜像名 loganjindev/certbot:v1.0.0
总结
- 本镜像适合不想破坏宿主机的朋友们,docker容器一键申请,不用了直接删除容器即可。
- 如如部署或者其他问题欢迎去我的博客(www.loganjin.cn)留言或者微信公众号(Python技术交流圈)留言交流哦。
版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:https://www.loganjin.cn/article/docker-certbot-deploy/
许可协议:署名-非商业性使用 4.0 国际许可协议