Докер это ху-е-та. Иногда такое впечатление, что подобные вещи придумывают садисты, чтобы было максимально неудобно работать, чтобы очень трудно было установить, чтобы не хватало памяти, чтобы как можно медленнее работало на windows. Это издевательство какое-то.
обязательно прям так понадобился докер? Без этого никак не выдать, не показать, не донести? Он же просто выбрасывает ваш компьютер на помойку, это такой прогресс что ли? Может быть тут есть крутые спецы, которые без докера жить не могут? Объясните, это такая необходимая вещь?
>>2455386 (OP) Потому что куча серверного говна пишется изначально для линукса, а на винду это добавляют потом через всякие костыли с потерей в производительности, и докер, например, как раз такое говно. Без докера можно, конечно, как-то же без него раньше обходились, просто задачи, которые он решает, без докера и его аналогов решать неудобно.
>>2459860 Хули ты городишь. Даже пет проект легко начинать с докером. Нужна бд - прописал пару строчек в doker-compose.yml и вот уже пользуешься бд, нужен редис - тоже самое. Не нужно - docker-compose down docker-compose container prune
>>2455386 (OP) Ты хоть раз пробовал разрабатывать софт, который будет устанавливаться больше чем в одном месте? Ты с людьми, которые инсталяцию производить будут - работал хоть раз? Я - да. И знаешь, когда ты в инструкции по установку ЗДОРОВЫМ КРАСНЫМ ТЕКСТОМ выделил, что нужно установить PostgreSQL для работы, а человек 5й раз подряд упорно ставит MySQL - как-то руки опускаются. Когда ты пишешь, для работы нужна такая-то версия фреймворка, а человек - достал хрен пойми откуда легаси-версию и упорно не хочет понять, че у него не работает. И да, можно сказать - запихни все что нужно для работы в инсталляционный скрипт, так вот хуй - в одной системе - так надо, в другой - вот так, а в соответствии с какими-то процидурами у клиента - вообще нельзя чтобы был инсталляционный файл - все зависимости надо описать и типа должны будут их админы как-то разрулить, а эти одмены - выше описаны. С докером - таких проблем намного меньше. Ты даешь простой инсталляционный скрипт в 2 строчки и все, заебись, теперь идите нахуй.
>>2455395 >>2455395 Я не совсем понял, что, куда и кому ты собрался с докером нести и показывать.
У докера есть конкретная цель - сделать так, чтобы окружение проекта было идентично у всех участников его разработки и на продакшене.
Представь команду из трёх человек: допустим, фронт, бэк и тестер. У бэка, скорее всего, будет линукс. У фронта - мак. У тестера - винда. И каждому из них придётся изъёбываться по-своему, чтобы установить даже компилятор/интерпретатор/ебаторию/на/которой/они/пилят проект. Поставить, НАПРИМЕР, пхп на видну, может, и не проблема, а вот сунуть туда, например, библиотеку для монги - нужно обоссаться говном и обосраться мочой. У линуксеров могут возникнуть проблемы с шарпом, нативно написанным для винды мелкософтомя не знаю, какая у этого ситуация сейчас, я с шарпом не работаю, что там у яблоидов возникнет, мне вообще не известно да и по хуям тбх
И вот вы всей командой (или одним выделенным объяснятором) срываетесь, чтобы у фронтендера Гвутамбе Заебумбы проект заработал правильно, а бэкэндер Майк Оксмолл не заёбывал тестера и не вылил ненароком хуету в мастер, потому что на его арче всё работает охуенно, а на дебиане в проде - почему-то нет. А время-то идёт, и за время платит заказчик.
Докер позволяет всё это сделать в одну команду в терминале (ну, смотря, как настроен docker-compose, но факт такой). Это экономит огромную уйму времени и делает проект максимально унифицированным.
На винде - да, я испытывал с докером проблемы в плане того, что он не так резво собирал контейнеры, но работает он так же, как и везде.
Поэтому он и становится на сегодняшний день важной строчкой в резюме. Если ты умеешь с ним работать, значит, вероятно, понимаешь, зачем он нужен. А судя по тому, что ты понаписал в оп посте - нихуя ты не понимаешь.
Алсо, если ты решил заниматься разработкой ПО под веб (потому что нахуя тебе бы ещё всрался докер?) на винде, то храни тебя Господь.
>>2460171 > Элитарий страдает Для тебя предпочтение TUI, потому что он тратит меньше графических ресурсов твоей пеки - это показатель "элитарности"?
>>2460110 в контексте "порога вхождения" я, наверное, не совсем согласен: что толку в гуе, если нет базового понимания работы с инструментом? Мне лично докер стал понятнее только после того, как я им попользовался в рабочих условиях.
И, в целом, я согласен - докер ни черта не панацея, и для одинакового окружения нужен другой подход. Но если докер это позволяет, и делает это не то, чтобы сложно, то почему нет? Онбординг нового члена команды тоже занимает время. Как бы ни был неправильным подход через докер, перспектива решить ряд неудобств одним docker-compose up --build - крайне притягательная
>>2455386 (OP) >чтобы очень трудно было установить, чтобы не хватало памяти, чтобы как можно медленнее работало на windows Как то пришлось разобраться почему в винде докер приводит к полному зависанию системы на машинах тестировщиков. Мотай на ус лалка, если сама не шмогла. Докер desktop запускает виртуальную машину с linux на котором будет крутиться containerd. Виртуальная машина поднимается без (sic!) лимита на использование памяти. Если долго поработать с докером, а потом зайти в виртуальную машину, можно запросто обнаружить что внутри неё под 90% физической памяти хоста занято под buffer/cache. Что является совершенно нормальным поведением для стенделон linux хостов. Но в случае запуска без лимитов в виртуалке, память на хосте просто кончается и он часто виснет намертво. Чтобы такой хуйни не происходило, нужно поставить лимиты памяти на VM. Я насколько помню создавал и кидал какой-то маленькие конфиг файл кудато в домашнюю директорию пользователя. Гугли. СПЕРМОБЛЯДИ ДОЛЖНЫ СТАРДАТЬ
>>2464532 >является совершенно нормальным поведением То что у прещеблядья память утекает? Ну заебок >память на хосте просто кончается Че несешь, пидорас, про виртуальную память не слышал?
> Докер - удобный способ упаковки приложений - собрал образ один раз и он запустится всюду - удобный способ управления зависимостями, несовместимые версии софта теперь изи уживаются на одной системе - удобный способ инсталляции зависимостей - вместо херинга своей системы просто скачиваешь желаемый образ без конфликтов версий - монга, постгрес, рабитмкю, редис, эмуляторы aws/gcp, да миллионы их - удобный способ сборки приложений используя multi-stage builds - удобный способ большое инстансов своего приложения на одной машине - контейнеры занимают меньше ресурсов чем виртуалки - строчка "докер + кубер" в сивишке изи +25% к зепешке
пойду дальше допиливать тг бота на докере + авс лямбда
>>2464563 >удобный способ упаковки приложений - собрал образ один раз и он запустится всюду Поясните - правильно ли я понимаю как это работает: - Некий человек устанавливает весь нужный софт как если бы он его ставил на линупсе (со всей сопутствующей еблей, кстати) только ставит его внутри докера - Получившийся (довольно увесистый) бинарник заливается на сервера докерхаба на всеобщее обозрение
также возникают вопросы: - Не смущает ли смузихлебов что вся их инфраструктура находится на всеобщем обозрении - Какие же нужны объемы хранилищ чтобы хранить все этого говно и какой им от этого профит - Ведь должно наверное быть ограничение на то сколько они хранят образы и вообще собираются заниматься подобной благотворительностью, разве не?
>>2464775 Не смущает, у нас приватный registry на своем сервере Объемы небольшие, ведь образы состоят из слоев, которые кэшируются и шарятся пежду разными образами, значительно сокращая потребляемое место. То есть физически хранятся только слои с каким-то уникальным контентом. Если это можем позволить себе мы, мелкий бизнес, то что до многомиллионной компании, которая продает докер как продукт.
>>2464775 на практике образы не занимают много места, поскольку слои между ними переиспользуются. алсо например если нужна правка кода, то изменяется только внешние слои, софт и зависимости не меняются
> на всеобщее обозрение нет, у нас например личный репозиторий тебе чо 16 лет?
> кококо розмер кудах ты же потролеть пришёл, правда, манька? тебе не интересно понять докер
>>2464792>>2464826 Ну вы же просто повторяете бессмысленные мантры-мантрочки про ой смотри как у меня все компактненько по слоям разбито. Вы сами то головой подумать в состоянии хоть немного? Если есть допустим постгрес какой нибудь - сотню-две мегабайт бинарников занимает его дистрибутив. Там хоть сжимай ты его, хоть на сто слоев разбивай - все однохуйственно будет. Есть еще сотни-тысячи всяких программ. КАЖДЫЙ ЕБАНЫЙ ДЕНЬ значительная часть этого говна обновляеться с версии 0.3.3.5 на 0.3.3.6 и какой-нибудь веселый хипстер заливает новый образ обновленного говна. И все это говно нужно хранить ad infinitum получается.
Вообще я только недавно с удивлением узнал что в мирке прыщеблядикса в репозиториях хранят только несколько последних версий, а старые удаляют нахуй. Меня это довольно удивило, оказывается мир не сказка.
>>2464775 >- Не смущает ли смузихлебов что вся их инфраструктура находится на всеобщем обозрении Докер-хаб позволяет услугу "приватные хранилища", стоит совсем недорого https://www.docker.com/pricing/ кроме того, можно поднять собственное храналище, даже готовый докер-образ для этого есть в докерхабе.
>- Ведь должно наверное быть ограничение на то сколько они хранят образы и вообще собираются заниматься подобной благотворительностью, разве не? Хранилища не так много съедают. Мне кажется вот что критично, так это чудовищный трафик. Не знаю, как они эту проблему решают.
>>2464833 > часть этого говна обновляеться с версии 0.3.3.5 на 0.3.3.6 меняется только внешняя часть образа - и завиваются только внешние слои которые ничего не весят
>>2464833 Чем это отличается от репозиториев для dpkg пакетов, для всяких npm, pip-хранилищ? Там тоже хранятся все возможные версии пакетов.
В докер-хабе корневых дистрибутивов не так много. А основное количество это хипстерские поделки на основе этих дистрибутивов. Но за счёт послойности эти поделки вполне себе легковесные.
> КАЖДЫЙ ЕБАНЫЙ ДЕНЬ значительная часть этого говна обновляеться с версии 0.3.3.5 на 0.3.3.6 По-моему ты плохо представляешь, как хипстеры работают. Они делают приложение, сначала ставят из pip какую-то библиотеку. Потом делают pip freeze, который автоматом сохраняет точную версию библиотек, и дальше годами пользуются этим конфигом, даже не пытаясь обновляться. Послойность при таком подходе работает идеально.
>>2455386 (OP) Тоже так думал, пока не разобрался. Хуета не докер, а документация к ниму, а вернее туториал. Попробуй лучше разобраться на примере, используй docker-compose. Например если ты питонист погугли как развернуть джангу через докер композ, все сразу встанет на свои места только если ты не виндузяткик мухахаха.
>>2459922 Для этого я в моменты когда простой в работе изучаю rpm чтобы запаковывать в него 100% тиражируемых на новые машины программ чтобы не писать инструкции по установке для коллег. Просто некоторые из них долбаебы в стадии отрицания, не могут выполнить инструкции для установки по пунктам (например когда в описании пункта написано пункт нужен только для определенного случая при установке а не для всех, КОПИПАСТЯТ КОМАНДЫ ИЗ ИНСТРУКЦИИ НЕ ЧИТАЯ ОПИСАНИЕ ИЗ ПРИНЦИПА, А ПОТОМ БЕГАЮТ С ГОРЯЩЕЙ СРАКОЙ). Крч слишком скилловые первобытные кодеры в тысячами лет опыта, слишком крутые чтобы не перепрыгивать инструкции через абзац. Мидлы питонисты и сеньоры сисадмины. Блять кажется питон заставляет кодеров эволюцинировать в обратную сторону что они тупее сисадминов в общении. Bwt я единственный джуниор, берущийся за все что дают, то за код, то за администрирование.
Понимание того, как работает Docker, даётся очень тяжело. Если кто-то возьмётся объяснить мне на пальцах как для первоклассника, буду очень признателен.
Не буду пользоваться абстракциями и приведу конкретный пример. Допустим у меня установлен последний релиз Ubuntu, на котором я делаю веб-проект с подключением определённых зависимостей: 1) MySQL, 2) пыха, 3) Laravel, 4) библитеки для натягивания фронта и, собственно, 5) source code. Есть товарищ, который гоняет Windows 10 и собирается работать над моим проектом. Каковы наши действия?
1) Устанавливаем docker и docker-compose на обеих машинах. 2) Я нахожу образы используемых мной зависимостей в Docker Hub. Но какова вероятность того, что нужного образа я там вообще не обнаружу? Те же библиотеки для фронта типа Bootstrap. 3) Прописываю инструкции для скачивания образов в docker-compose.yml и в терминале выполняю скрипт. 4) Все эти прописанные образы помещаются в некое виртуальное окружение-эмулятор под названием container. Или создаётся отдельный контейнер для каждой зависимости? Что насчёт source code? Он тоже контейнизируется? 5) Чекаю, что всё работает ок и передаю этот .yml и source code товарищу. Он его выполняет и получает идентичное моему окружение-контейнер.
Поправьте, где я неверно расписал или что нужно делать совсем иначе.
>>2455386 (OP) Просто тебе не приходилось локально поднимать приложуху с хуёвой документацией и отсутствующей поддержкой. Иногда это впринципе нереально сделать. С докером же оно упаковано и сразу работает.
>>2455386 (OP) >>2455395 Нахуя тебе виндовс? Чтобы что? Благодаря докеру можно за пару секунд накатить на сотню серверов релиз фронта и бэка без необходимо писать каждому скрипт и пердолиться с каждым серваком отдельно.
>>2500164 docker-compose, используется для запуска готовых контейнеров, собирать он их не умеет. Для этого используется Dockerfile. 1) Да. 2) Да. Причем здесь библиотеки? Как ты их ставишь без докера, расскажи, потом подскажу решение. Скорее всего, у тебя будет кастомный контейнер с проектом и контейнер под БД. 3) Прописываешь в Dockerfile. Композ пишешь для запуска нескольких контейнеров, если есть. 4) Что ты понимаешь под зависимостью? Воспринимай контейнер как виртуальную ОС, что положишь в контейнер, то в нем и будет. Исходный код копируется на стадии сборки контейнера, а для разработки, монтируется папка с твоего компьютера в контейнер. 5) Помещаешь Dockerfile и docker-compose.yml в папку с исходным кодом, коммитишь, теперь это часть твоего проекта.
Ну я уже год работаю крудомакакой на Винде. Базы все в докере, брокеры сообщений, тестконтейнеры. И ci-cd тоже деплоит релизы в докер-контейнеры. В Винде есть неплохой ssh клиент MobaXterm, а из идеи можно подключаться по ssh прямо внутрь докера. Докер под всл иногда виснет, сжирая память, но очень редко. Пару раз в тестконтейнере кафки была ошибка, которая только на Винде воспроизводилась, но с новой версией поправили. Не вижу проблемы в редких зависаниях, если неделю не выключать Винду. Ну и гиг-два лишней отожранной памяти под всл это тоже не большая проблема. Я не фанат винды, но дали ноут с виндой и всем софтом. Вроде можно поставить прыщи, но я должен буду все сам ставить в личное время, а мне дико лень.
Скажите, а это нормально, что папочка по адресу C:\Users\%username%\AppData\Local\Docker\wsl постепенно растёт до 10, 50, 200 гигов, пока не займёт всё дисковое пространство? Так и было задумано создателями данного программного обеспечения?
>>2455386 (OP) >не хватало памяти Докер виноват, ну >медленнее работало на windows Тут вообще слов нет. >Это издевательство какое-то Выпились, вкатыш. Всё равно работы тебе не видать, нах не нужон.
>>2504541 У меня докер работает на raspberry pi zero 1ГГерц 1 core и 512МБайт RAM. Где крутится: rest-server, node-exporter, кустомный сервис на lua и wireguard. Подмана под arm6 нет. Скорее всего ты просто тупой. И именно поэтому у тебя не работает. А не потому что докер плохой. >>2505614 К хую моему привыкай.