Задать вопрос
Afranius
@Afranius
Из говорящих дольше живут те, что говорят меньше.

Docker или LXC?

Задача у меня такая: хочу поднять десяток-другой псевдо-виртуалок, множество которых будет обозначено двумя-тремя ролями. На данный момент думаю LEMP и NS -серверы. Требования просты: вход по ssh не под рутом, sudo, для веба - поддержка ftp (смотрю в сторону pure-ftpd с поддержкой mysql). Было бы также неплохо, если бы все хосты получали айпишник от внутреннего DHCP-сервера. Рулиться все хосты должны с ansible
Начал изучать докер - сплошные разочарования: и служба в контейнере одна, а для добавления второй нужно compose линковать, и по умолчанию служба работает на хосте, надо номер порта указать - а с полноценным сетевым стеком всё не так просто. И контейнеры не предназначены для длительного хранения, для логов и данных нужно отдельные папки монтировать. И задумался я, не проще ли LXC для таких целей использовать? Ибо минусов я нашёл много, а плюсы пока не столь явные (для меня по крайней мере). Но может я чего-то не понимаю или ещё что-то не прочёл? Может есть иные средства?
И ещё такой вопрос -могут ли плейбуки ansible брать данные для хостов из mysql?
  • Вопрос задан
  • 1563 просмотра
Подписаться 2 Простой 2 комментария
Решения вопроса 2
opium
@opium
Просто люблю качественно работать
Докер вам не нравится потому что вы хотите виртуалку, а не докер.
Глупо ожидать от докера чего то, если вы его не хотите и проекты под него не затачиваете.
А так лучше конечно брать квм, оно все таки работает получше чем lxc
Ответ написан
Исходя из ваших требований, docker действительно не подходит, тк он про создание индивидуальных изолированных контейнеров под каждое приложение, а не про виртуалки.

Я бы рассмотрел возможность поменять требования и процесс, чтобы он нормально ложился на логику докера:
1. Конфигурировать приложение через DockerFile и переменные окружения
2. Логировать в stdout, и его потом перенаправлять в Loki, и просматривать в grafana
3. Деплоить через docker swarm
4. MySQL как отдельный сервис на внешнем хосте, а не индивидуально под каждый контейнер
5. И никакого захода по ssh - всё нужно делать через докеровский же API

Но если нет - придётся пилить что-то поверх LXC или использовать полновесную виртуализацию
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@rPman
lxc - полноценная виртуалка, с паравиртуализацией (нет тратит ресурсы на аппаратную виртуализацию) идеальная для простых задач изоляции сетевых запросов (без них хватило бы и простого chroot), осторожно

lxc не полноценно изолирует окружения, т.е. если внутри такой виртуалки злоумышленник будет иметь root то он сможет выйти в хост систему.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы