|
2.8, бублички (?), 03:17, 06/04/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
для простого и понятного примера, попробуй запусти в одном Docker-контейнере Nginx, PHP-FPM, MySQL и Postfix. да, в одном контейнере а не в 4 разных, что будут по TCP/IP друг с другом общаться и все впятером гадить в syslog что крутится в 5-м. в LXC это делается как в любой стандартной OS, ибо служит для изоляции (контейнер) OS, в то время как Docker для изоляции приложения
| |
|
3.12, Аноним (12), 05:50, 06/04/2020 [^] [^^] [^^^] [ответить]
| –7 +/– |
что ты несешь, как настроишь, туда и будут "гадить", все, что может lxc, может и docker, но не наоборот
| |
3.18, нах. (?), 08:47, 06/04/2020 [^] [^^] [^^^] [ответить]
| +18 +/– |
> для простого и понятного примера, попробуй запусти в одном Docker-контейнере Nginx, PHP-FPM,
> MySQL и Postfix.
к сожалению, примерно 2/3 хлама, поставляемого в виде докер-образов именно так и сделаны. Включая, как ни смешно, docker registry.
Ты еще забыл добавить в эту кучку мусора самодельную наколеночную замену init (да, да - что-то ведь должно весь этот мусор последовательно запускать) и cron (ибо ниасиляторы не могут настоящий, а периодические процессы таки им иногда нужны)
А теперь попробуй корректно такой "контейнер" остановить по docker stop. "ой, база побилась" ? Ну, вот так у обезьянок - всё. Естественно, и от докерной автоматики, перезапускающей если упало, таким образом успешно избавляются, docker daemon умеет перезапускать только entrypoint, а не всю внутреннююю мусоруку.
Еще очень модно при старте что-нибудь скачать из интернета и покомпилять - потому что макака не смогла это запихнуть куда надо, в dockerfile.
Сколько макакам ни долбили что докер вовсе не предназначен быть эмулятором для запуска операционной системы целиком, это средство изоляции отдельной программы - даже нарочно наделав им грабель (любимый макакой systemd просто так внутри не запускается) - ничего не помогает. Включая макак, работавших в самом докере - еще раз см регистри.
Но, к сожалению, поляна, как обычно, загажена - ни про какое lxc макака и не слышала, и не умеет, и уметь не хочет.
При этом как раз все, что умеет делать докер, lxc тоже умеет. Включая и не ограничиваясь частичной изоляцией - без громождения прослоек overlay одной поверх другой.
| |
|
4.31, бублички (?), 11:06, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
мне то ты зачем про это пишешь, да ещё в таком количестве? я применение Docker знаю, и где надо и возможно - пользуюсь им без лишних уродливых костылей, именно для изоляции приложения (к примеру RabbitMQ кластер, что деплоится автоматом со всеми необходимыми настройками из Dockerfile). где надо больше чем может Docker без костылей - пользуюсь LXC. где надо ещё больше - KVM. и всё прекрасно работает, жалоб нет, костылей избегаю
| |
|
3.23, YetAnotherOnanym (ok), 09:28, 06/04/2020 [^] [^^] [^^^] [ответить]
| –7 +/– |
Очень хорошо настраивал в одном контейнере Haproxy, Zotonic (т.е. Erlang VM), PostgreSQL и OpenSSH. Контейнер лепил сам из голого Alpine.
А что, у меня должны были возникнуть какие-то проблемы?
| |
|
|
5.29, YetAnotherOnanym (ok), 10:37, 06/04/2020 [^] [^^] [^^^] [ответить]
| –4 +/– |
> Кроме того что ты идиот (догадайся сам почему), проблем никаких.
То есть, кроме оскорблений, сказать нечего. Чего-то такого я и ожидал.
| |
|
6.32, бублички (?), 11:10, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
а что тебе ещё сказать? тем-более ты сам говоришь что ожидал подобного. а вот скажи, ожидаешь не от понимания ли что всё-таки используешь Docker не по назначению?
| |
|
7.41, YetAnotherOnanym (ok), 12:58, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
> используешь Docker не по назначению
А я и математический анализ не по назначению использовать могу - согну проволоку в форме интеграла и достану ключи из унитаза.
Если контейнер с 512МБ ОЗУ стОит примерно на треть дороже, чем контейнер с 256МБ, а контейнер с 1ГБ ОЗУ стОит немного более чем наполовину дороже, чем контейнер с 256МБ, то как раз таки надо быть идиотом, чтобы платить за 4 контейнера вместо одного.
| |
|
|
|
10.79, www2 (??), 09:51, 07/04/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Зачем вам вообще Docker, если вы во главу угла ставите дешевизну хостинга Для м... текст свёрнут, показать | |
|
|
|
|
14.88, Аноним (88), 18:15, 07/04/2020 [^] [^^] [^^^] [ответить] | +/– | Контейнеры типа докера тут не нужно использовать вообще Контейнеры ОС типа LXC ... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
4.33, бублички (?), 11:21, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
и правда удобно? и не беда что файлы той-же базы PostgreSQL приходится держать где-то вне контейнера чтоб не исчезли при его рестарте? мигрировать с сервера на сервер такой контейнер с внешними файлами удобно? выкатывать новый для HA? а новые ключи для доступа по SSH как добавляешь? неужели руками? уже и не спрашиваю про новых пользователей кому надо дать доступ в твой контейнер. чего только не выдумают люди чтоб оправдать свою лень и нежелание узнавать что-то простое и полезное (в данном случае LXC)
| |
|
|
6.45, бублички (?), 13:24, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
неправильный выбор технологий снизу и доверху впечатляет, полное отсутствие HA в принципе тоже. Docker там где нужен бы LXC, PostgreSQL (религия?) без всяких оснований вместо MySQL (Percona). HAProxy то для чего? SSH понятно тебе нужен, чтоб логи смотреть и процессами управлять, т.к. хостинг твой для бомжей (4 контейнера уже дорого) и видно даже лог твоего контейнера не отображает никаким образом (за дополнительную плату). надеюсь это dev или staging, за подобный production мучительно и долго убивал бы из рогатки клюквой. попадались мне такие проекты по наследству от всеразличных самоделкиных - смеялся и плакал, восхищаясь бесконечной глупости. даже поставил на столе портретик Эйнштейна
| |
|
7.51, YetAnotherOnanym (ok), 14:46, 06/04/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Дай-ка угадаю, ты когда-то прочёл одну-единственную хаутушку и с тех пор она завладела твоими мыслями и не отпускает ни на мгновенье, и всё, что тебе попадается, ты переделываешь по тому самому, одному-единственному когда-то прочитанному рецепту.
А что касается подхода "заплати лишнее за ненужное, а то я буду на тебя смотреть как на бомжа" - уместна для "бутика", где торгуют вьетнамским барахлом под видом эксклюзивного хот-кутюр из Парижа.
| |
|
|
9.57, Аноним (57), 16:15, 06/04/2020 [^] [^^] [^^^] [ответить] | +/– | Вам с такими взглядами о единственно возможном способе использования технологий ... текст свёрнут, показать | |
|
|
|
6.84, Аноним (88), 15:43, 07/04/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Подозреваю, вы плохо читали http docs zotonic com en latest developer-guide g... большой текст свёрнут, показать | |
|
|
8.91, Аноним (88), 01:40, 08/04/2020 [^] [^^] [^^^] [ответить] | +/– | Скорее жалость к человеку с ограниченными умственными возможностями, который ни ... большой текст свёрнут, показать | |
|
|
|
|
|
3.47, Аноним (47), 13:32, 06/04/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
В чем проблема это сделать? Берешь любой менеджер процессов и вперед. Да можешь хость systemd взять.
| |
|
4.67, нах. (?), 20:21, 06/04/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
например в том, что ты явно никогда даже не пытался.
> Да можешь хость systemd взять.
можешь, только работать он - внезапно, не будет.
| |
|
5.74, Аноним (74), 23:55, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
> например в том, что ты явно никогда даже не пытался.
нет ты
> только работать он - внезапно, не будет.
будет
| |
|
|
3.56, Аноним (57), 16:05, 06/04/2020 [^] [^^] [^^^] [ответить]
| –4 +/– |
запускаешь supervisord в качестве pid 1 и все остальные Nginx, PHP-FPM, MySQL и Postfix — через его конфиг. Нет никаких проблем.
| |
3.78, Aquarius (ok), 07:17, 07/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
А что мешает сделать так, чтобы они будучи в разных контейнерах общались не по TCP/IP, а через pipe?
| |
|
2.11, Аноним (-), 05:36, 06/04/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
у lxc есть unprivileged containers для запуска контейнеров без рута (хотя в lxd их поддержку, емнип, не завезли)
| |
2.14, microcoder (ok), 07:11, 06/04/2020 [^] [^^] [^^^] [ответить]
| +8 +/– |
LXD запускает контейнер как виртуальную машину развернутую из образа и сохраняет измененное состояние контейнера между запусками (стартами контейнера), тогда как докер разворачивает контейнер налету из образа, а при остановке его уничтожает, т.е. не хранит его состояние между запусками. Все данные нужно выносить биндингами на хост или куда нибудь еще за пределы контейнера если нужно что-то сохранить, например логи сервисов или файлы БД MySQL который крутится в контейнере. Возможно докер можно настроить как LXD, но не интересовался такими подробностями. Соответственно, для файлов которые растут в контейнере, в том числе для файлов баз данных можно применить квоты на объёмы дискового пространства на уровне контейнера или дискового устройства контейнера (можно создать для /home одно устройство, для /var другое и т.д.) который располагается в томе BTRFS или другой ФС которая предоставляется на выбор при создании хранилища для контейнера. В докере придётся что-то мутить с этим, я не знаю как просто также сделать как в LXD.
LXD эксплуатирует QEMU, что позволят управлять в одном флаконе как контейнерами, так и полноценными виртуальными машинами. Можно хоть Windows 10 развернуть как виртуальную машину и управлять этой машиной унифицированными инструментами (клиетом LXD).
LXD является сервисом REST API, поэтому есть возможность создавать свои собственные запросы для управления контейнерами сторонними клиентами, например, через curl или создать свой web-клиент или использовать готовый.
В LXD нет никакого dockerfile, не нужно изучать и запоминать лишние слои абстракций для запуска контейнера, так как LXD хранит состояние контейнера при перезапуске. Например, для открытия TCP портов в контейнере нужно это явно прописать в докерфайле изучив тонкости этой премудрости, тогда как в LXD это делается штатными инструментами дистрибутива из которого развернут этот контейнер.
Docker можно запустить в контейнере LXD :)
| |
|
3.17, microcoder (ok), 08:23, 06/04/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
В дополнении, LXD может запускать контейнеры в непривелегированном режиме, это когда внутренний пользователь, например root имеет UID=0, но для хоста на котором крутится этот контейнер внутренний root будет равным UID + SubUID = 1000000, и таким образом, если root сможет "выйти" из контейнера, то на хосте он не будет иметь привелегии root.
Есть ли такое в Docker?
| |
|
4.19, нах. (?), 08:58, 06/04/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
> В дополнении, LXD может запускать контейнеры в непривелегированном режиме
сколько раз уже этот "непривелегированный режим" сам по себе вел к local root? ;-)
Потому что на самом деле он очень даже привиллегированный - это юникс, детка, хотя бы еще отчасти, не рут не может делать массу вещей - поэтому вся размазня с uid mapping призвана замазать тот факт, что на деле у тебя при этом появляется сто рутов, и на каждой их операции система вынуждена пристально вглядываться "этот рут - тут рут, или надо его обломать?" - разумеется, подобная схема лажала и будет лажать, где-нибудь да ошибаясь в проверках.
> Есть ли такое в Docker?
к счастью, нет. Можно запускать контейнер вообще от обычного пользователя, просто не оставляя внутри средств поднятия полномочий, и дополнительно некоторые capabilities выключены из коробки даже для контейнеров, работающих от рута. Именно так оно и было задумано - докер писали как изоляцию одной задачи, насмешка над bsd jail, а не эмулятора в эмуляторе в эмуляторе.
Нет рута - нет проблемы root escape. К сожалению, макаки так не умеют, 90% мусора с докерхаба не от рута не работают.
| |
|
5.20, microcoder (ok), 09:10, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
> сколько раз уже этот "непривелегированный режим" сам по себе вел к local root?
> это юникс, детка
Это важное замечание. Ничего совершенного нет, в том числе и сам kernel Linux не избавлен от дыр :) Баги приложений никто не отменял, но по дизайну - local root не допустим в "непривелегированном" режиме.
> к счастью, нет.
Ок
| |
|
|
3.21, нах. (?), 09:11, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
> тогда как докер разворачивает контейнер налету из образа, а при остановке его уничтожает, т.е.
> не хранит его состояние между запусками
тут тебя тоже обманули - контейнер может быть персистентным, и сохраняться при остановке.
Небольшая проблема в том, что если, опять, макака завела внутри целиком эмулятор операционной системы вместо одной задачи, причем задача ДОЛЖНА уметь корректно завершать работу по сигналу извне, docker stop выглядит не как shutdown, а как обрубание питания на ходу.
Собственно, настоящий системный shutdown точно так же выглядит, это init снабжен кучей хитрой механики, плавно останавливающей демонов, в правильном порядке и дожидаясь завершения их работы.
Но внутри докера нет такого init ;-) и, главное, места под него не предусмотрено. Каждый макак чуть поумнее типового вынужден сам себе изобретать - причем докер ему тут не помогает, а мешает. Например, в докерфайле нельзя задать таймаут шатдауна, отличающийся от дефолта. И если у тебя там что-то сложное, что просто так не выключить - остается только писать жалобные просьбы в документации - "останавливайте, пожалуйста docker exec stop, или хотя бы docker -t 20000 stop, иначе я за базу не ручаюсь".
А система с нескучным restapi у нас называется k8s + openshift
> Например, для открытия TCP портов в контейнере нужно это явно прописать в докерфайле
не, не нужно. Так было задумано, когда-то давно, когда хотели чтобы докерфайл был единственным и законченным хранилищем всей метаинфы, что именно может понадобиться этой задаче.
Это все сломали и выбросили еще на ранних этапах, вместе с persistent volumes и volume-from, точнее, объявили немодно-deprecated, и понаписали сверху еще две разных обертки, ни одну из которых тоже не доделали - некогда, смузи киснет, макака, задрав обос...ный хвост уже убежала в другой прожект.
| |
|
4.22, microcoder (ok), 09:22, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
Спасибо, что пояснили некоторые моменты, я за докер брался несколько лет назад, не пошло - выкинул его и взял LXD :)
> макак
Кто это такой, что за зверёк? :)
| |
|
5.24, Аноним (24), 09:29, 06/04/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> > макак
> Кто это такой, что за зверёк? :)
нах настолько зазвездился что начал говорить о себе в третьем лице
| |
5.26, нах. (?), 09:59, 06/04/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
раньше у нас их в сухумском обезьянопитомнике разводили, опыты по заражению чумой ставить - а потом как-то стало негуманно считаться, и их всех произвели в "разработчики". Теперь вот - чума, и вдобавок докер.
| |
|
6.27, microcoder (ok), 10:04, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
Какие страсти творятся в Сухум )) Был я у вас в 2016 - чудесный город, мне понравился, даже гопники налетевшие толпой понравились ))
| |
|
7.35, нах. (?), 11:53, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
в 16м вроде уже не было обезьян в питомнике. А доскер с системдой активно развились. Совпадение? Не думаю!
| |
|
|
|
4.28, YetAnotherOnanym (ok), 10:36, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Но внутри докера нет такого init ;-) и, главное, места под него
> не предусмотрено.
А чем тебя tini не устраивает?
| |
|
5.36, нах. (?), 11:54, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
Например, что он ничего не сможет сделать, если ему прилетит SIGTERM от docker stop. Никакой возможности задержать окончательный sigkill если это руками не предусмотрительно попросил набиравший
| |
|
6.42, YetAnotherOnanym (ok), 13:01, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Например, что он ничего не сможет сделать, если ему прилетит SIGTERM от
> docker stop. Никакой возможности задержать окончательный sigkill если это руками не
> предусмотрительно попросил набиравший
Нууу, это обходимая проблема.
| |
|
7.69, нах. (?), 20:24, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
нет. Это вот в доскере не решается вообще никак в принципе. Баг дизайна.
Ну или сознательный tradeoff (типа и нехрен всякие postgresы запускать таким образом, это ни разу не stateless ограниченное приложение, для которых, типа, изобретали докер), только я не верю что ляпатели на игогошечке хоть иногда бывали в сознании.
Судя по остальным оставшимся от них кучкам.
| |
|
|
5.37, нах. (?), 11:55, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
Например, что он ничего не сможет сделать, если ему прилетит SIGTERM от docker stop. Никакой возможности задержать окончательный sigkill если это руками не предусмотрительно попросил набиравший stop - не завезли.
| |
|
|
3.48, pin (??), 13:37, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
> LXD
> Все данные нужно выносить биндингами на хост или куда нибудь еще за пределы контейнера если нужно что-то сохранить
А ты правильно понимаешь lxd/lxc?
| |
|
4.58, microcoder (ok), 16:18, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
Цитата взята из того места где говорил о докере, однако в LXC тоже можно выносить данные за пределы стораджа контейнера, а внтури монтировать как дисковое устройство.
| |
|
5.61, pin (??), 17:44, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Цитата взята из того места где говорил о докере,
Видимо я не распарсил. Ок.
| |
|
|
|
2.38, sage (??), 12:40, 06/04/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Docker — контейнер приложений (application container), LXC/LXD/OpenVZ — системные контейнеры (system container). Сделаны по-разному и для разного.
Пересекаются технологически, но не идеологически. Docker не подходит и не предназначен для контейнеров с большим количеством демонов, как и не подходит LXC/Jail для запуска одной единственной программы, предварительно установив туда всю ОС.
Мне гораздо чаще приходится запускать полноценные контейнеры, и я выбираю для этого LXD (и иногда systemd-nspawn/machined). Возможно, некоторые не знают о разнице подходов, и пытаются адаптировать неподходящий, но известный им инструмент (docker) под их задачу, что можно видеть по куче статей в интернете, где решают проблему init 1 в docker.
Systemd не работает в Docker.
| |
|
3.49, Аноним (47), 13:56, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Systemd не работает в Docker.
Это же из-за проблем с правами просходит. В LXC должно быть также? Под капотом же одно и то же.
| |
|
2.60, trunk (?), 17:27, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
В частности тем, что есть в 32-разрядных дистрибутивах. Можео на старый сервер поставить.
| |
|
|
2.2, Аноним (2), 23:15, 05/04/2020 [^] [^^] [^^^] [ответить]
| +12 +/– |
Примерно тем же, чем лучше трамвайной ручки.
Это вообще-то совсем разные вещи.
| |
|
|
|
5.76, _ (??), 03:35, 07/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
Вах! В отличии от доскера - офигенная, винтажная штучка! :)
| |
|
|
|
2.3, Аноним (3), 23:30, 05/04/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Стоит сравнивать с openvz. Есть мнение, что хуже openvz быть ничего не может, в связи с чем сабж -- технический победитель.
| |
|
3.6, Aliech (ok), 01:31, 06/04/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
Оценивать по ущербности low-end хостеров саму технологию изоляции... Это... ну это Опеннет, всё норм. Продолжайте...
| |
|
4.7, Аноним (3), 01:52, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
Почему-то решения на основе lxc при всей ущербности у тех же самых помойных хостеров вполне норм. Можно сделать определённые выводы. Или это мне так "везло"?
| |
|
5.30, Aliech (ok), 11:06, 06/04/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Пока нет данных об оверсейле мощностей тех нод, где крутился OpenVZ, - никаких выводов делать нельзя.
Тем более что OpenVZ появился раньше, клиенты на нём тоже, нода стоит не обслуженная уже лет десять, и железка там не вывозит. А на новую ноду с lxc собрали года три всего назад, lxc не позволял сделать такой оверсейл... И, в итоге, пользователи lxc живут чуть-лучше.
Такое вот у меня видение проблематики. Не претендую на точность взглядов, так как тоже не имею карманного помойного хостера, чтобы статистику выкатить.
| |
|
|
|
4.34, бублички (?), 11:37, 06/04/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
то-есть Linux-VServer. даже сам уже забыл как называется, т.к. не пользовался лет 10
| |
|
|
|
1.59, Аноним (47), 16:40, 06/04/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Самая большая проблема с LXC для хипстеров в отличие от docker - он не работает на их яблозондах.
| |
|
2.73, Аноним (73), 23:16, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
на маке и винде докер работает в виртуалке
т е ставиш виртуалнку - в нее убунту - в нее LXD
и вуаля - LXD работает на маке
| |
|
|
2.71, Аноним (73), 23:14, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
LXD это система контейнерной виртуализации на базе готовых проверенных образов
поэтому мы не изучаем премудрости и нюансы такого тула как docker, а просто изучаем пару команд для управления контейнерами и используем стандартные средства ОС для конфигурации ПО в контейнере
| |
|
|
2.72, Аноним (73), 23:15, 06/04/2020 [^] [^^] [^^^] [ответить]
| +/– |
для локальной разработки мне ок
а для прода есть админы и облачные сервисы
| |
|
|