最近已经把大部分的服务都转成 docker 了。部署迁移都方便了很多。不过执行 crontab 的计划任务好像有点麻烦。查了不少方法,感觉还是在宿主机上直接运行方便些。我记录下我的方法供大家参考。
比如,我在使用 Docker 容器中的 Certbo 命令,以更新 HTTPS/SSL 证书的:
certbot renew
如果在主机中执行( certbotdocker 是容器的名称):
docker exec -it certbotdocker certbot renew
那在主机中的 crontab -e
中就可以:
0 2 * */2 * docker exec certbotdocker certbot renew # 每隔两个月的凌晨 2 点执行更新
需要特别注意的是 ,在 crontab 中执行 docker 命令的时候,别用 -it
参数!否则会执行失败。