一键更新所有 Docker 和 SSL 证书续期

全面 Docker 化大概有三年了吧,感觉真的比原来啥东西都安装在宿主机上、啥东西都需要手动更新要爽很多。

然而呢,做人嘛,最开心的就是懒,那就懒到底。

一键更新所有 Docker Image

作为一个不更新就立刻会死星人😂更新这件事儿还是要做的。在用 Docker 之前是写了个自动更新脚本,定时 apt upgrade,用了 Docker 之后就可以直接

docker images | grep -v ^REPO | sed 's/ +/:/g' | cut -d: -f1,2 | xargs -L1 docker pull
 docker image prune

然后停掉所有 Docker,重新再起来就好了。

一键为 Let's Encrypt 证书续期

这里感谢 acme.sh 这个神奇的脚本。

首先,在部署 acme.sh Docker 的时候,要这样写

acme.sh:
     image: neilpang/acme.sh
     container_name: acme.sh
     command: ["daemon"]
     volumes:
       - ./config/acme.sh/internal:/acme.sh
       - ./config/acme.sh/deploy:/etc/letsencrypt
       - /var/run/docker.sock:/var/run/docker.sock
     environment:
       - Ali_Key=XXXXXXXXXX
       - Ali_Secret=XXXXXXXXXX

注意两点:

  1. 最上面的 deamon,保证定时任务能正常执行
  2. 最后那些环境变量是阿里云的 Key 和 Screct,有这俩才能自动续期

然后如果自动续期挂了呢……也可以手动一键续期:

docker exec acme.sh --renew -d '域名 1' -d '域名 2' --dns dns_ali --force

虽然在公司每天也都是在和 Docker 打交道,但日常完全不会遇到这些破事儿……因为只需要写服务就好了。

留下评论