#docker #autodeploy
#docker #автоматическое развертывание
Вопрос:
Я пытаюсь выполнить автоматическое развертывание, так что…
У меня есть .sh
скрипт для автоматического извлечения изображений docker, например:
docker pull mongo
docker stop db
docker rm db
docker run --name db -d mongo
И я жду запроса POST, чтобы запустить его.
Итак, у меня есть контейнер (с nginx) для работы в качестве сервера. Но я должен вызвать этот скрипт вне контейнера, потому что он может обновить любой контейнер.
Возможно ли это? Если да, то как?
Ответ №1:
Мне кажется, что вы ищете сокет Docker UNIX. См. Некоторые пояснения здесь (возможно, лучше всего прокрутить вниз до части «Решение» этой страницы. В принципе, вы должны запустить свой контейнер Nginx с подключенным сокетом UNIX. Это позволяет использовать docker
команду из контейнера Nginx в других родственных контейнерах.
Важное замечание по безопасности:
Использование сокета UNIX является определенной проблемой безопасности, особенно если вы предоставляете его всемирной сети. См. [1] и [2]. Другие альтернативы могут включать использование Docker-in-Docker, хотя я не уверен, что это подходит для вашего случая прямо здесь. Docker опубликовал сообщение в блоге о том, как защитить сокет UNIX здесь, если вы хотите пойти по этому пути.