觸發主機從另一個 docker 容器內部重新啟動 docker 容器的最佳方法?

觸發主機從另一個 docker 容器內部重新啟動 docker 容器的最佳方法?

我有一個 docker 容器,它使用 Letsencrypt 管理我的服務的所有 SSL 憑證。當某個服務的憑證被續訂時,後掛鉤腳本會將憑證和金鑰複製到其他容器使用的 SSL 憑證和金鑰所在的資料夾中。然後需要重新啟動另一個容器才能使用新的、更新的憑證。我目前的解決方案是將 docker 主機暴露給在 docker compose 中的 LetsEncrypt 容器,如下所示:

    extra_hosts:
      - "host.docker.internal:host-gateway"

然後,我可以將我的 SSH 私鑰放入 LetsEncrypt 容器中,並執行 docker compose 命令,從 post-hook 腳本中的 SSH 會話重新啟動另一個容器。

然而,我意識到這並不理想,因為它允許從 LetsEncrypt 容器對 docker 主機進行 root 訪問,如果它被洩露,那就不好了。

我的問題是:有沒有更好的方法讓 docker 主機從另一個容器內重新啟動容器?

相關內容