
У меня есть контейнер Docker, который управляет всеми сертификатами SSL для моих служб с помощью Letsencrypt. Когда сертификат для определенной службы обновляется, скрипт post-hook копирует сертификат и ключ в папку, где находятся сертификат SSL и ключ для других контейнеров. Затем этот другой контейнер необходимо перезапустить, чтобы использовать новый обновленный сертификат. Мое текущее решение — предоставить хост Docker контейнеру Letsencrypt, как в docker compose:
extra_hosts:
- "host.docker.internal:host-gateway"
и затем я могу поместить свой закрытый ключ SSH в контейнер letsencrypt и выполнить команду docker compose, чтобы перезапустить другой контейнер из сеанса SSH в скрипте post-hook.
Однако я понимаю, что это не идеально, поскольку позволяет получить root-доступ к хосту Docker из контейнера letsencrypt, что было бы нехорошо, если бы он был скомпрометирован.
У меня такой вопрос: есть ли лучший способ заставить хост Docker перезапустить контейнер изнутри другого контейнера?