Могу ли я использовать привилегированный контейнер Docker для порождения других контейнеров на хосте?

У меня есть проект, который состоит из десятков десятков контейнеров на хост. До сих пор я использовал SSH/Ansible для порождения контейнеров на своих виртуальных машинах при начальной загрузке, но теперь я хотел бы, чтобы демон запускался на каждом хосте, чтобы запускать контейнеры только при необходимости.

Для лучшего управления зависимостями я был бы рад, если бы мой демон мог запускаться сам в привилегированном контейнере (безопасность не является проблемой), связываясь с демоном хоста Docker для запуска новых контейнеров (см. Следующую схему). Возможно ли это не хакерским способом, или Docker полностью запрещает контейнерам взаимодействовать с базовым демоном Docker?

Если это невозможно, расскажите, пожалуйста, о вашем предпочтительном способе программного запуска докеров. Заранее спасибо:)

1 ответ

Решение

Я не использовал привилегированные контейнеры много, но я думаю, что то, что вы предлагаете, будет работать. Тем не менее, другое популярное решение - это установка док-розетки в контейнер. Это достигнет того, что вы пытаетесь сделать.

docker run -v /var/run/docker.sock:/var/run/docker.sock <image> <cmd>

Это не рекомендуется, как вы можете видеть из множества рекомендаций против этого в этом простом поиске Google. Но так как вы не беспокоитесь о безопасности, вы можете быть в порядке.

Другие вопросы по тегам