Могу ли я использовать привилегированный контейнер Docker для порождения других контейнеров на хосте?
У меня есть проект, который состоит из десятков десятков контейнеров на хост. До сих пор я использовал SSH/Ansible для порождения контейнеров на своих виртуальных машинах при начальной загрузке, но теперь я хотел бы, чтобы демон запускался на каждом хосте, чтобы запускать контейнеры только при необходимости.
Для лучшего управления зависимостями я был бы рад, если бы мой демон мог запускаться сам в привилегированном контейнере (безопасность не является проблемой), связываясь с демоном хоста Docker для запуска новых контейнеров (см. Следующую схему). Возможно ли это не хакерским способом, или Docker полностью запрещает контейнерам взаимодействовать с базовым демоном Docker?
Если это невозможно, расскажите, пожалуйста, о вашем предпочтительном способе программного запуска докеров. Заранее спасибо:)
1 ответ
Я не использовал привилегированные контейнеры много, но я думаю, что то, что вы предлагаете, будет работать. Тем не менее, другое популярное решение - это установка док-розетки в контейнер. Это достигнет того, что вы пытаетесь сделать.
docker run -v /var/run/docker.sock:/var/run/docker.sock <image> <cmd>
Это не рекомендуется, как вы можете видеть из множества рекомендаций против этого в этом простом поиске Google. Но так как вы не беспокоитесь о безопасности, вы можете быть в порядке.