Популярные мифы про Docker
Встречался третьего дня с одним коллегой, у того серьезная головная боль – куда пойти-податься с Zimbra, ящиков 300+, почты более 1,5 ТБ. Причем требуется что-то опенсорсное, лишних денег у компании нет.
Ну возьми, говорю, Mailcow – быстро, просто и актуальный набор возможностей, чтобы не только почта в клиенте была, но и инструмент совместной работы.
Реакция меня удивила, мол да ладно тебе, он же в Docker, он не потянет мои 300+ ящиков и 1,5 ТБ почты.
На мой вопрос, почему он так считает, последовал ожидаемый ответ – мол Docker – это же кубики для разработчиков, быстро поднял, быстро протестировал. Он же не тянет серьезные нагрузки!
Кто он? Выясняется, что он – это сам Docker и в представлении многих наших коллег именно он выполняет код в контейнерах, являясь прослойкой между ними и хостом. Поэтому опасение по поводу еще одного слоя вполне обоснованны.
При этом данный коллега вполне себе использует LXC и именно потому, что там нет накладных расходов. Пришлось провести краткий ликбез и пояснить, что и Docker, и LXC используют один и тот же механизм (namespaces и cgroups), а сама служба Docker – просто менеджер, которая только запускает и тушит контейнеры и обеспечивает их обвязом, ни более, ни менее.
Да, многим странно такое читать и слышать в 2026 году, но увы, это суровая реальность. А некоторые вообще агрессивно отрицают Docker, мол только пакеты, только руками. При том, что многие проекты уходят в вариант – только Docker или вон там лежит исходный код - собирайте сами.
Другой популярный миф – контейнер как черный ящик, в нем даже консоли нормальной нет. Но в этом и есть основной смысл контейнеризации Docker (а точнее OCI) – контейнер является точным слепком образа и иммутабелен. Даже если с ним что-то случилось, то просто перезапусти и получишь систему в идеальном исходном состоянии.
Да и кто может собрать и настроить свой продукт лучше, чем сами разработчики? Поэтому официальный образ в любом случае будет лучше любой кастомной установки. Потому что подводит под нее готовую и твердую базу.
При этом никто не снимает вопрос доверия. Потому что одно дело использовать официальный образ от разработчика, а совсем другое – образ третьего лица, пусть даже и популярную.
В классической парадигме с пакетами все тоже самое – или вы ставите пакеты только из официального репозитория, либо на свой страх и риск подключаете сторонние источники, а то и руками ставите левые бинарники.
Но даже в этом случае Docker на порядок безопаснее, потому что замыкает процессы внутри контейнера и даже при закладке или уязвимости поражен будет только контейнер, из которого надо еще постараться сбежать.
А в современном мире, когда ИИ пачками находит уязвимости везде и всюду некоторые стеки так и просятся в Docker, тот же веб-сервер. Потому что пока мейнтейнеры проверят, обновят, завезут вас сто раз сломают и переломают.
Дистрибутивы в этой гонке катастрофически не успевают, а вот контейнеры позволяют быть на первом крае и вовремя получать изменения и обновления, без оглядки на дистрибутив.
Морали снова не будет, каждый должен думать сам. Потому что Docker не серебряная пуля и не панацея, это просто еще один способ запуска рабочей нагрузки, попутно предлагающий ряд серьезных преимуществ. А дальше каждый решает самостоятельно.
Post #6796
226

- ❤ 2