我有一个 docker 容器,它使用 Letsencrypt 管理我服务的所有 SSL 证书。当某个服务的证书更新时,后挂钩脚本会将证书和密钥复制到其他容器使用的 SSL 证书和密钥所在的文件夹中。然后需要重新启动该其他容器才能使用新的更新证书。我当前的解决方案是将 docker 主机公开给 letsencrypt 容器,如下所示,在 docker compose 中:
extra_hosts:
- "host.docker.internal:host-gateway"
然后我可以将我的私有 SSH 密钥放在 letsencrypt 容器中,并运行 docker compose 命令从后挂钩脚本中的 SSH 会话重新启动另一个容器。
然而,我意识到这并不理想,因为它允许从 letsencrypt 容器以 root 身份访问 docker 主机,如果它被破解,那就不好了。
我的问题是:有没有更好的方法让docker主机从另一个容器内部重新启动一个容器?