Pull to refresh

Comments 115

Любопытно, спасибо - однако всё же неясно что удерживает всех кому нужен докер от использования его непосредственно в Linux-е :) типа сами себе создаём проблему потому что макбук удобнее для созвонов и вообще попрестижнее выглядит - и потом мужественно боремся с кучей мелких неуобств возникающих тупо из-за того что OsX это не Linux. Ну или уж как вариант два ноута использовать - один для профессиональных задач, второй для созвонов и совещаний :)))

Почему не линукс - моя безпроводная перефирия очень плохо работает на линуксе. Как десят лет назад, я не готов постоянно-периодически мучаться, почему отвалились наушники, где моя мыш и т.п. Люблю линуск, но на расстоянии

Дичайше плюсую. 7 лет работал на Ubuntu/mint/ZorinOS. Каждый раз при созвонах тратились нервы. То скролл перестает работать на беспроводной мышке, то микрофон у наушников отъедет и приходится лезть в настройки и выбирать устройство ввода…

Что на работе выдают, с тем и работаем

Четверть века назад нужно было на линуксе поддерживать пачку chroot с разными версиями софта и дистрибутивами. Сегодня можно сделать то же самое куда проще и быстрее с помощью контейнеров докера. Какую систему выбрать хостовой - дело вкуса, а не необходимость. Кстати, линукс на эппл силикон до сих пор далек от идеала - и всегда будет игрушкой, пока это не дебиан :) - а другого выбора ноутов и моноблоков со сравнимым экраном (не говоря обо всем остальном) просто нет.

Я года три на WSL на nodejs проекты пилил. Версия 1.0 прям сырая была, а вот 2.0 прям огонь. Причем можно виртуалку в файл экспортнуть, так несколько раз между виндовыми компами ubuntu со всеми настройками/пакетами/проектами переносил - красота! Пришлось пересесть на мак, поскольку ВПН + интернет в WSL стали шалить, то работает, то нет, то опять работает

Я тоже с этим столкнулся, когда каждый раз при запуске wsl перепрописывался dns сервер, он не работал с впн и приходилось его менять в resolv.conf на 1.1.1.1.

Wsl.conf править не пробовали ?

мост к файловой системе через WSL крайне медленный. Хотел гит из SWL в винде увидеть - скорость доступа убила

Есть, и их даже много

Разве что по живучести батареи нет, но тут уже дело в ос

всех кому нужен докер от использования его непосредственно в Linux-е :)

Линукс как ОС нужен где-то в 5% от всех рабочих задач, ради этого использовать ее как основную ОС, уж тем более заводить второй ноут – очень странное решение, на любителя, так сказать.

смелое утверждение. Особого веса ему придаёт конкретная цифра.
На самом деле всё зависит от профессии, занимаемой позиции и, конечно же, личных предпочтений. Мне использование linux как основной и единственной системы, в разы упрощает многие вещи. От MacOS я плевался почти так же как типичный маковод от ubuntu. Дело вкуса. Везёт нам что есть альтернативы. Надеюсь они сохраняться

Ну я конкретно за свой случай и говорю. Веб разработчик, использую .NET + React, Rider + WebStorm + Insomnia. Все это прекрасно работает под любой ОС. конкретных преимуществ линукса при таком сценарии просто нет, а контейнеры нужны для того, чтобы развернуть базу, брокер сообщений, проверить работу приложения в условиях, максимально близким к хостингу. И работать под маком просто гораздо проще, чем под линуксом, где все работает из коробки и работает нормально.

конкретных преимуществ линукса при таком сценарии просто нет

Докер на хостовой ОС, а не через ВМ-прослойку.

Главное не что хотели сказать а что сказалось:
«.. и работать под Маком проще чем под Линуксом, где все работает из коробки и работает нормально».

Т.е. ежики кололись и продолжали есть кактус, вместо того чтобы пересесть на Линукс :)

Ну у меня макбук и ноут на линуксе, обоими пользуюсь с удовольствием (я уж не говорю про "парк" личных серверов на линуксах). Не нужно обобщать свои личные заморочки на всех.

Смотри я человек, который не верит в б... то есть в принципе в подобные штуки.

Я сижу на линуксе с 13 лет, мне 27. Я настраивал 6 Centos, когда мне было 15 лет.

И знаешь что я тебе скажу Линукс до появления flatpak это страх, смерть личной и социальной жизни и ужас.

Вместо того чтобы делать уроки я настраивал Линукс, чинил драйвера, ядро, жор памяти.... чинил UI менял UI.

Большинство тех кто мне заливает про линукс даже не знает о существовании Timeshift, которая must have на линуксе, если ты на работе хочешь работать, а не настраивать Линукс.

Так вот я как-то раз попробовал мак, для меня это был кринж другая ракладка, некоторые ограничения в ОС.

Спустя время я заметил, что, когда я сажусь работать я просто открываю крышей ноута одним пальцем и просто работаю.

Понимаешь. ПРОСТО сажусь и работаю.

Не мучаюсь с настройкой всего и вся, а просто работаю.

Линукс у меня остался на рабочем ноуте и по прежнему за 10+ лет не починили выключение Карл системы. А этому ноуту 3 года всего. Мне приходится удерживать кнопку выключения чтобы ноут отрубился.

И Линукс мне нравится, у меня его всё ещё очень много дома, рабочий ноут, роутер, steam deck.

Но единственные кто реально сделал всё красиво с линуксом что он работает практически нормально это Valve со Steam Deck и знаешь на чем они основали свою SteamOS v2? На Arch Linux и flatpak. Я уже говорил что "я же говорил что будущее за арчем + flatpak!"?

Короче мак отличное устройство, хочешь верь хочешь нет, это тебе говорит человек, который всю жизнь провел ковыряю Линукс и ПО.

Если ты не веришь мне, то ты не поверишь никому и в таком случае диалог окончен.

Timeshift, которая must have на линуксе

А вот в nixos...

У меня похожий бекграунд, но другие впечатления. Познакомился в 14 лет, начал использовать как основную систему с 15 лет, а сейчас мне тоже 27.

Всё работает как часы. Да, иногда настройки ("время") могут сбиться, и их надо немного поправить.

В отличие от мака каких-то непредсказуемых изменений не происходит. Если что-то пойдет не так, то я могу поставить другое ядро/систему. Могу сделать апгрейд железа. Могу заменить сломанную клавиатуру за 2 минуты.

Timeshift не использовал. Сборка некоторых хитрых пакетов стала отличным шагом в сторону вычислительной дискретной математики. Не уверен, что смог бы собрать под мак.

  1. У меня с ноутом на винде такое было.

  2. На PS3-PS5 и Nintendo'вски консолях не линукс, а вообще FreeBSD. Тоже включается одной кнопкой, тоже работает из коробки, тоже не требует настроек.

  3. Куча сетевого оборудования (роутеры, коммуты), в т.ч. домашнего на openwrt или его форках (линукс без флатпака). Работает из коробки, настраивается мышкой, держит годы аптайма.

Вывод? Нормально делай - нормально будет. Дело не в ОС.

Какой же вы самодовольный ***...

Линукс у меня остался на рабочем ноуте и по прежнему за 10+ лет не починили выключение Карл системы. А этому ноуту 3 года всего. Мне приходится удерживать кнопку выключения чтобы ноут отрубился.

Т.е. вы за 10 лет не смогли разобраться c systemd и реакцией на кнопки и вырубаете систему на горячую каждый раз? Немного не то, что ожидаешь от линукс-пользователя с 14 летним стажем..

Ничего удивительного!
Например у меня есть знакомая с 12 летним стажем безаварийного вождения.
Водительские права посто лежат где-то далеко с момента получения :)

Потому что это красиво

Поддерживаю, ничем другим на маке после OrbStack пользоваться просто невозможно.

Отдельно радует, что автор - простой студент (ладно, не очень простой, а студент Стенфорда), который просто любит писать хороший софт.

Когда-то давно программисты придумали многозадачные операционные системы. Как так получилось, что теперь каждой задаче нужна своя собственная отдельная операционная система в контейнере?

Контейнеры придумали для управления зависимостями, а ограничение ресурсов это дополнительная функциональность, появившаяся позднее.

Получилось из-за повального "на моей машине работает". А оно в свою очередь получилось естественным путем из-за того, что прикладные библиотеки даже в идеальном мире обновляются и нет нет, да ломается обратная совместимость или просто совместимось какой-то из 100500 возможных конфигураций библиотек. Эта проблема совершенно не новая и была и в 90е и даже в 80е.

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

Потом началось: программы обновляются, библиотеки обновляются, закрывать критические дыры в безопасности в следующем релизе через 3 года стало не нормой. Теперь каждая программа требует свою уникальную версию библиотеки, и все ожидают её увидеть по одному и тому же пути. Многозадачная система: выбирай, какую задачу поставить, да.

Для решения вопроса придумали стандарт версионирования semver - который оказался следующим провалом. На бумаге красиво: библиотеки, отличающиеся мажорным номером не совместимы, а минорным - совместимы. На новый минорный номер можно спокойно обновлять, исправляя дыры в безопасности. На практике оказалось, что разработчики библиотеки далеко не всегда знают, являются ли их изменения обратно совместимыми. А пользователи ловят приколы: поставил одну программу - сдохла другая. Накатил обновление - сдохли обе.

Поэтому сначала в моду вошёл chroot, а потом Vargant. Да-да, Docker и Flatpak всех спасли: до них на полном серьёзе становилось нормой запускать каждую отдельную программу в полноценной виртуалке.

Проблема зависимостей - это та самая причина, по которой я перешёл на nixos. И оно того стоило (не смотря на все трудности перехода).

NixOS ждёт затяжной нырок на дно: из команд разработки разбежались все технари, зато "инклюзивность" и "небинарность" теперь основные цели дистрибтива, до идиотизма. Те, кто остался, свято верят что не могут быть неправы по определению, а любой, кто с ними не согласен - засланый троль, как у Линуса.

Ну нафиг такое счастье. Я скорее Microsoft поверю и в вопросах приватности, и технологической надёжности: те хотя бы для вида должны законы соблюдать.

Пользуюсь дистром уже около двух лет - полёт нормальный. В чатике в тг состою, там тоже такого повода не проскакивает.
Хотелось бы больше конкретики: где эта "небинарность" и "инклюзивность" проявляется, в каких местах и как. Желательно со ссылками

Вот отсюда, если охота начинать копаться в этой яме. Конечно ,самые конкретные призывы найти и убить друг-друга за них уже потёрли площадки.

"Операционная система в контейнере" - похоже вы неправильно себе представляете как работают контейнеры. И для чего они нужны. Поищите на досуге про контейнеры "the hard way" или "Докер контейнеры без Докера" . Контейнеры - это прежде всего про изоляцию. И если ОС не нужна, в контейнер её тащить не надо (FROM scratch).

Мне для работы практически всегда надо подымать всю инфраструктуру нашей компании на локалке в контейнерах. Плюс IDE от Jetbrains, которая тоже жрет ресурсы как лошадь, плюс браузер и всякое остальное по мелочи. В итоге с Docker Desktop я постоянно упирался в нехватку памяти при моих 16 Гб. Это в свою очередь влекло за собой нехватку производительности, потому что система сильно залезала в swap.

Многие не понимают, что память - это главный ресурс на новых Mac.

OrbStack мгновенно решил все эти проблемы. И мне не пришлось жертвовать ничем, только сплошные плюсы

Плюс IDE от Jetbrains, которая тоже жрет ресурсы как лошадь…

Зачем ставить тяжеловесный модный софт, когда есть отличные текстовые редакторы с подсветкой синтаксиса (BBEdit), включая консольные (mcedit)?

Подозреваю, главная причина в том что человеку нужна IDE, но не текстовый редактор с подсветкой.

Так нужна IDE, что невозможность нормально работать после ее установки не имеет значения?

я постоянно упирался в нехватку памяти
Это в свою очередь влекло за собой нехватку производительности, потому что система сильно залезала в swap.

Вспоминается анекдот: "Вам шашечки или ехать?". Ну и, конечно, "у тебя учет в рублях, а у меня - в сутках" (c).

Если в вашем проект 30 срок кода и 2 файла, то BBEdit подойдёт. А если строк миллион, файлов тысячи, то нужна быстрая навигация, поиск по типам, поиск по использованию, data-flow анализ и куча чего ещё.

Пусть пробует VSCode там всё это есть и есть вэб-версия.

Подозреваю, главная причина в том что человеку нужна IDE, но не текстовый редактор с подсветкой.

А хоть кто нибудь может объяснить, что эти слова значат?

между 30 строчками и миллионом строк есть целый континуум возможных опций...

Да, но в этом континууме опций выбор средств разработки конечен.

Давайте начнем с самого простого. В IDEA во время отладки я могу написать выражение на java, scala или kotlin с использованием переменных в текущей области видимости и выполнить его.

Могу дебаггеру предоставить кастомную функцию toString, что бы объекты определенного типа в дебагере отображались так, как мне нужно.

Например у меня есть объект типа матрица, а дебаггер будет рядом с именем переменной писать размер матрицы или другую интересующую меня информацию.

А ещё я могу взять эту переменную и вычислить ее определитель прямо во время дебага не меняя исходник и не перезапуская приложение.

На самом деле я не считаю определители матриц. Но вот выяснить какой объект по ключу лежит в хеш таблице очень даже часто нужно.

VSCode не для JS так умеет?

Знаете почему мне это удобно и важно? Потому что большие корпоративные приложения, в которых миллион строк, собираются и стартуют кучу времени. От кнопки запуска до точки останова может пройти пару минут (это у меня ещё быстро). А со сборкой все 15-20.

Если я исследую какой-то баг, то без IDEA за час сколько я гипотез могу проверить каждый раз перезапуская приложения с новым кодом для дебага? 5, 10?

Давайте пример посложнее. Нужно найти все места, откуда функция вызывается с учётом всех вложенных вызовов. Например вы меняете какой-то общий код, и хотите выяснить какие части приложения будут затронуты. Тесты дописать, тестировщикам дать задание проверить.

IDEA позволяет построить дерево вызовов. Причем в обе стороны: входящие и исходящие связи.

А вот в микросервисе на 300 строк кода это не нужно, да. Там весь код помещается в голове.

А например кликнуть по имени колонки в sql запросе и попасть в подключенную базу данных BBEdit умеет?

Отвечаю на свои же вопросы по VSCode.

Выражения в дебаггере работают, дебаг консоль тоже работает.
Кастомные вьюхи в дебаггере не нашел.
Call hierarhy работает в обе стороны.
До sql не дошел.


Но на первый взгляд все мои доводы не обоснованы.
Я что, превратился в старого ретрограда? Непривычно, но попробую.

Пока вы тут фантазируете про миллионы строк кода, разработчики линукс (где реально много кода и файлов) пользуются текстовыми редакторами. Конечно, для этого нужно уметь программировать, а не надеяться на автодополнения от IDE. Кстати, называть типы данных так, что их по названию нельзя отличить - это вы нашли, чем хвалиться…

Ну я отсылал патч в Linux. С удовольствием использовал бы CLion для разработки. Но он только с cmake тогда умел работать. Поэтому в Eclipse исходники ковырял.

Вы мне ещё предложите на работе по почте патчи слать.

на работе по почте патчи слать.

вы не поверите, но как минимум в одном банке так и есть!

главная причина - распаянная память на маке. Был бы там разъем всеб просто ставили 32/64 Гб и не парились.

Мне вот надо работать с VM'ками (астра мать ее линукс), сколько там в 16 Гб влезет? штуки 3-4, а если завернуть это все в EVE-NG с парой коммутов/МЭ, то всё, 2-3, VM'ки это в лучшем случае.

Кто мешает покупать сразу с нужным объемом распаянной?

я конечно не слежу за apple, но разве существуют макбуки с 64\128 Гб ОЗУ?

Ну и что там с ценами на 32 Гб версии? мне вот 17 тыщ хватит для апгрейда на 64 ОЗУ

но разве существуют макбуки с 64\128 Гб ОЗУ?

Вы сами ответили на вопрос. У процессоров M, память сидит на внутренней шине процессора, поэтому она распаяна с ним на одной подложке и ее нельзя сделать внешней и сменной при сохранении скорости.

Хотите сменную покупайте Intel/AMD.

Так о том и речь, что цепочка событий выглядит так:

Эпл распаяла память т.к. модно стильно-молодёжно -> повелся на маркетинг, взял мак -> получил ограниченный объем ОЗУ (в среднем 16 Гб), без возможности апгрейда -> начал решать рабочие задачи -> уперся в нехватку -> начались пляски с оптимизацией и костылингом

Первопричина то всего этого как раз распаянная память и выбор оборудования не соответствующее задачам.

но разве существуют макбуки с 64\128 Гб ОЗУ?

Самая топовая прошка как раз и будет 128 GB RAM. Разве что ценник совсем не гуманный.

Могли бы и ценник показать на этот конфиг, че уж там. 4500 долларов или около того.

Ну я же не просто так ссылку приложил :) Но вообще, хочу сказать, сама конфигурация не самая плохая, а не только памяти больше чем в стандартной

Потому что IDE от Jetbrains - это то, что мне надо.

Для примера: зачем вы пишете комментарии на Хабре, если есть одноклассники и вконтакте?

Потому что IDE от Jetbrains - это то, что мне надо.

То есть задачи написать код у вас нет, нужна только IDE чтобы… что? А когда на (удаленных) хостах доступна только базовая система (дебиан, к примеру) и консольный редактор типа nano? Не говоря уж о том, что подсветка синтаксиса в редакторах работает с полусотней или более языков программирования, а IDE поддерживают лишь некоторые популярные языки. Не потому ли нейросетями заменяют «программистов», что таковые только сниппеты и автоподстановку IDE могут использовать для кодирования, а нейросети все это делают куда быстрее?

Если вы редактируете код программ напрямую на удаленных хостах, как в нулевых, то могу вас поздравить с наступающей катастрофой с последующим увольнением.

IDE от Jetbrains - это настоящий комбайн, который включает в себя всё, что мне нужно для работы с проектом. Мне не надо настраивать 100500 разных инструментов для работы с кодом, с базой данных, с http клиентом, с докером и т.д и т.п. Там всё это есть и всё связано друг с другом.

Но самое главное - это рефакторинг. Такого мощного рефакторинга нет ни в одной другой IDE или текстовом редакторе. Одна эта функция экономит мне часы работы со старым или чужим кодом.

Если лично вам всё это не надо, это не означает, что другим людям это не требуется.

Столько слов и ни одного пруфа. Где результаты-то, кроме восхваления IDE? Почему-то линукс, постгрес, эскулайт написали программисты в текстовых редакторах. Где переписанное вами ядро линукса, к примеру, в подтверждение этого «мощного рефакторинга»? Или вы в этой супер IDE только комментарии на хабр писать можете?:)

Я боюсь, что в текущих условиях, (бывшие) пользователи продуктов JB не имеют возможности (легально) насладиться всеми плюсами IDE от JB :)

а в чём проблема собрать себе на интолъ 128гиг-стенд для Всех контейнеров и управлять этим всем с эира в 1.2кило?)

стенду нужен интернет, электричество, охлаждение, определенная влажность (Тайландские "номады" передают привет).

лучше уж железку в ДЦ по вкусу, облако на 128 гигов ОЗУ без штанов оставит.

как у и любой железки, у нее есть минусы - но, блин, за 50 евро в месяц?)

Но почему тогда не взять линукс за основную рабочую систему вместо мака с осХ? Современные ноуты на интел есть и с 32 гб, и даже с бОльшим размером ОЗУ.

Потому что ноуты на интел не дают 8 часов автономности с запущенным докером, браузером, IDE и прочим по мелочи

Насколько часто нужна такая автономность именно в режиме активной разработки? Мне как-то тяжело представить себе невозможность найти розетку раз в 3-4 часа и не беспокоиться о батарейке. Это не значит, что у всех так, конечно.

А много знаете ноутов на интел, которые с докер + браузером + ide проработают хотя-б 3-4 часа? У меня на М1 хватает на 5-6 часов максимум и часто это прям критично (

Вот ради интереса отключился от розетки сегодня - 3 часа проработал мой Dell Precision 5560 (3 года ему) на Windows 10 с Pycharm, 2 профиля Firefox, Opera, Teams, Outlook, Rancher Desktop + всякие корпоративные ВПН, антивирус и т.п. с внешним 4к монитором (у него своё питание), bluetooth клавиатура, мышка и наушники. И еще 5% осталось батарейки. Не M1,2,3, конечно, но терпимо.

В любом случае не припомню, чтобы мне когда либо нужна была такая автономность именно для программирования.

Есть одно но - бесплатный только для некоммерческого использования. FAQ на сайте, и в разделе Pricing.

так же как и докер десктоп.

У orbstack есть проблема с публикацией портов на кастомный интерфейс https://github.com/orbstack/orbstack/issues/291 Используя кастомные интерфейсы, мы решаем пооблему пространства портов и можем повторяться в портах на хосте, сделав доп подсети и забиндив их на нужный сетевой интерфес. В остальном RnD по orb только положительные эмоции ьоже оставил.

Честно, не знал что есть Posdman Desktop. Перепробовал много альтернатив и Docker Desktop был удобнее всего, пока с OrbStack не познакомился. Из того что явно отличается, нет поддержки виртуалок, удобно когда с помощью одного приложения можно ставить.

Поставлю себе рядом, прогоню пару тестов, посмотрим как себя поведет. Если будут интересные результаты - опубликую.

Не совсем понятно из контекста, это замена Docker или замена Docker Desktop. Если я всегда стартую проекты командой docker-compose up -d из терминала и практически никогда не пользуюсь GUI Docker Desktop, поменяется ли что-то при переходе на Orbstack? И ничего не понятно по миграции: зачем она вообще нужна? Изменился ли синтаксис compose файлов? Что с форматом Dockerfile? Что с реестром образов?

Это замена именно Docker Desktop. Все интеграции, команды docker и т.п. работает нативно. Но это не просто интерфейс, работа сильно эффективнее, батарейку жрет мало, помимо контейнеров можно спокойно запускать Linux виртуалки и есть инструмент для откладки distroless и подобных контейнеров.

То есть отвечая на ваш вопрос, если пользуетесь только терминалом, то получите прирост в производительности файловой системе, оптимизации по CPU, и долгую батарейку.

Про миграцию - что бы все данные перенести в OrbStack. Docker Desktop можно использовать параллельно, но если что-то соберете в нем, в OrbStack нужно собирать повторно, так как эти ресурсы не шарятся, разные контексты.

В таком случае это выглядит очень интересно. Предложу затестить коллегам, у кого мак. Я в своё время пересел с рабочего мака на личный ноут с виндой и WSL2 именно из-за недостаточной производительности докера на макоси.

Я в такой же ситуации просто использовал вторую систему с Linux, потому-что у винды были аналогичные проблемы с производительностью файловой системы (для меня это было основная проблема). Потом устал переключаться и просто стал использовать удаленный сервер для разработки. Ну а потом Docker представил новый драйвер и в целом стало можно жить.

Муть опуса не в ОС а в том что десктоп докера ахренеть какой кривой. Но, что мешает использовать докер чисто без десктопа. Все летает. Единственное неудобство это управление. Но для дева это не должно быть проблемой

Что вы под этим подразумеваете?

brew info --cask docker
==> docker: 4.35.0,172550 (auto_updates)
https://www.docker.com/products/docker-desktop
Not installed
From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/d/docker.rb
==> Names
Docker Desktop
Docker Community Edition
Docker CE
==> Description
App to build and share containerised applications and microservices
==> Artifacts
Docker.app (App)
Docker.app/Contents/Resources/etc/docker-compose.fish-completion -> /opt/homebrew/share/fish/vendor_completions.d/docker-compose.fish (Binary)
/Applications/Docker.app/Contents/Resources/bin/docker -> /usr/local/bin/docker (Binary)
/Applications/Docker.app/Contents/Resources/bin/docker-credential-desktop -> /usr/local/bin/docker-credential-desktop (Binary)
/Applications/Docker.app/Contents/Resources/bin/docker-credential-ecr-login -> /usr/local/bin/docker-credential-ecr-login (Binary)
/Applications/Docker.app/Contents/Resources/bin/docker-credential-osxkeychain -> /usr/local/bin/docker-credential-osxkeychain (Binary)
/Applications/Docker.app/Contents/Resources/bin/hub-tool -> /usr/local/bin/hub-tool (Binary)
Docker.app/Contents/Resources/etc/docker.bash-completion -> /opt/homebrew/etc/bash_completion.d/docker (Binary)
Docker.app/Contents/Resources/etc/docker.zsh-completion -> /opt/homebrew/share/zsh/site-functions/_docker (Binary)
Docker.app/Contents/Resources/etc/docker.fish-completion -> /opt/homebrew/share/fish/vendor_completions.d/docker.fish (Binary)
/Applications/Docker.app/Contents/Resources/bin/kubectl -> /usr/local/bin/kubectl.docker (Binary)
Docker.app/Contents/Resources/etc/docker-compose.bash-completion -> /opt/homebrew/etc/bash_completion.d/docker-compose (Binary)
/Applications/Docker.app/Contents/Resources/cli-plugins/docker-compose -> /usr/local/cli-plugins/docker-compose (Binary)
Docker.app/Contents/Resources/etc/docker-compose.zsh-completion -> /opt/homebrew/share/zsh/site-functions/_docker-compose (Binary)
==> Analytics
install: 19,143 (30 days), 57,727 (90 days), 231,687 (365 days)

Вы думаете что у просто Docker и Docker Desktop разная реализация? Для Mac

я кстати тоже до конца не понимаю как это работает. Os x не может нативно использовать docker как linux, нужна виртуализация. Docker Desktop -- это типо то что по дефолту ставиться через brew install docker?

brew install docker ставит только консольный докер-клиент. Сервера там нет, его надо ставить отдельно.

brew install --cask docker ставит Docker Desktop - софтину, которая умеет запустить виртуалку с линуксом и докер-демоном внутри, и выставляет сокет от этого демона в хост-систему, чтобы докер-клиент мог общаться с демоном.

Да, разная

То что cask’ом ставится: docker desktop, это и виртуальная машина, и docker демон внутри, и docker клиент, и расширения типа compose, buildx, scout, etc.

То что formula’ой ставится: это только клиент, которому нужна обвязка, которая даст сокет, к которому и будет подключаться клиент, например lima/colima или podman

В контексте автора комментария все таки имелся ввиду докер desktop (по крайне мере я так понял), потому что бы использовать его (без других реализаций), нужно установить все что вы перечислили, а официальный дистрибутив который все это включает - Docker Desktop

Потестировал OrbStack на своих проектах, практически не заметил разницы. Есть 2 проекта: один жирный на kotlin, другой маленький на python. Оба активно используют контейнеры для тестов: redis, kafka, elasticksearch, mongodb, pgsql и другие.

Docker Desktop

mvn clean package 785.61s user 50.72s system 190% cpu 7:18.51 total

poetry run pytest -v 4.72s user 1.70s system 19% cpu 32.080 total

OrbStack

mvn clean package 774.98s user 46.27s system 196% cpu 6:57.17 total

poetry run pytest -v 4.38s user 2.36s system 21% cpu 31.341 total

Разница на жирном проекте всего лишь 1 процент.

P.S. У меня macbook m1 (32GB RAM), использую только arm контейнеры, Docker Desktop на всякий случай вообще удалил

Свои замеры не делал, ориентировался на несколько внешних источников.

Сегодня в течении дня сделаю, заодно еще и Podman Desktop потестирую.

Podman Desktop

Ох и развелось этих десктопов... Ещё Rancher Desktop есть.

Блин, я уже bench написал и запустил :)

Собственно сам bench, а именно то, как сравнивались между собой orbstack и docker desktop, на какой машине, на каких образах, с маунтом/без маунта и тд - вот это было бы неплохо в статье увидеть

Когда писал, не видел в этом смысла, потому что много публичных, и цифры а моей статье им соответствуют + личный опыт.

Но вы правы, после комментариев понял что актуально, особенно сравнение со специфическими движками (podman и прочее). Поэтому сегодня планирую опубликовать новую статью, вышло много кода и анализа.

Мне осталось решить одну основную проблему - подсчет mW, что бы понять потребление и сравнить его.

Да, сделаю. Правда результаты будут явно уже не сегодня.

Не понятно, будет ли прямое сравнение. Больше похоже на то что нужно сравнивать с запуском в виртуалке.

Ну по сути, любой сравнение работы докера под macos упирается в то, насколько производительная обертка над qemu или vz под капотом, и в этом ключе, как будто, лучше lima пока ничего нет

Я так понял докер внутри Lima нужно устанавливать в явном виде?

Тестирование производительности Colima даст понимание производительности Lima?

Я так понял докер внутри Lima нужно устанавливать в явном виде?

не обязательно, есть разные шаблоны, но при желании можно и сконфигурировать все руками

Тестирование производительности Colima даст понимание производительности Lima?

сложно сказать, как раз по причине выше - надо посмотреть как именно colima конфигурирует виртуалку

Я тогда пока потестирую все движки включая Colima, но без Lima, если будет желание доработать или помочь доработать скрипты (я их на GitHub выложу), то сможем совместно допилить за рамками текущего тестирования.

Там в целом можно развить тестирование и посмотреть например на производительность Docker в разных виртуалах.

Вот это хорошо, буду ждать ссылку в статье со сравнением

Чуть ниже опубликовал ссылку на статью

Парни расходимся, оно на win10 не работает вообще. :Ъ

Да, это плохая новость. Прямо как у классика: 2000-ная умерла, 7-ка умерла, 10-ке жить год остался... Но по сути, и правда, на 11 не хочется всеми фибрами, её штормит как бету уже который год (!). Впрочем, никто не мне запретит десятку и дальше использовать, а что обнов не будет, так только спокойнее станет, полагаю, будут только очень редкие затычки для совсем серьезных дыр, а это лучше, чем KB-ки с изменениями в стиле "поменяли местами кнопки в калькуляторе". *Грустная улыбка*

Ничего, буду в зомби-mode експлуатировать. ;)

Ставлю плюсик Orb за то, что из контейнера стало видно продакшен-БД, которая находится у меня за вайргардом и ВПН. Оно просто заработало. Докер даже после плясок с бубном вокруг роутинга и т.д. не смог так.

Попробовал OrbStack, действительно намного быстрее Docker Desktop. К сожалению, для Home Assistant и Homekit по-прежнему не подходит, для этих целей приходится использовать обычную виртуальную машину с мостом к основной сети, внутри нее уже docker контейнер с Home Assistant.

Host networking with mDNS is supported, but there's something else missing for HomeKit that we're not sure about yet. 

https://github.com/orbstack/orbstack/issues/183

OrbStack запускается за 2 секунды, в то время как Docker Desktop обычно требует 20-30 секунд

Энергопотребление заметно ниже - тесты показывают 180 mW против 726 mW у Docker Desktop при запуске одинаковых контейнеров

Использование Rosetta вместо QEMU для эмуляции x86 на Apple Silicon

Оптимизированная файловая система на базе VirtioFS с продуманным кэшированием

Мне кажется вам лень было зайти в настройки

Насколько я знаю, основная проблема производительности Docker на MacOS связана с ограничениями на уровне файловой системы. В Docker Desktop относительно недавно добавили Synchronized file shares, что при использовании bind mounts уже дает заметный прирост производительности. Правда эта функциональность доступна только в платных подписках (ну и OrbStack для коммерческого использования не бесплатный). Хотя в моем конкретном случае, на котором я тестировал (проект на PHP, операции в основном как раз с файлами), OrbStack оказался всё равно быстрее почти в 1.5 раза.
Еще совсем недавно в Docker Desktop добавили новый VMM. С ним (и с Synchronized file shares) в том же кейсе быстрее оказался уже Docker Desktop (примерно на 10%), но это только для Apple Silicon будет работать.
Сравнение, конечно, неполноценное, т.к. только на одном кейсе, но, может, кому-то полезно будет. По энергопотреблению и потреблению ОЗУ объективно не сравнивал пока, но субъективно кажется, что OrbStack в этом плане более эффективный.

Не знаю, может что-то делаю не так, но постоянно orbstack ругается что, ему не хватает памяти и завершает контейнер.

И при этом с Docker Desktop все ок? У меня 64 гигабайта и пока в память не разу не упирался нигде - не в desktop, не в OrbStack

Sign up to leave a comment.

Articles