Как стать автором
Обновить

Комментарии 54

Заголовок кликбейтный, потому что он подразумевает, что статья ответит на вопрос "Почему".

Давайте продолжим: Podman больше не нужен (firecracker, server webassembly, ... подставьте). Ну и Java тоже не нужна.

Не очень удачная аналогия с firecracker и webassembly. Эти проекты не могут быть полноценной заменой для Docker, и более того никто не ставит перед ними такой задачи. Podman, с другой стороны был создан как альтернатива для Docker и на данном этапе, я считаю уже готов для того, чтобы служить полноценной заменой для Docker в контексте CI/CD. Это не значит, что в Docker больше нет необходимости, просто больше он не является безальтернативным инструментом как это было раньше.

Но это оправдание, кхм, совсем не оправдывает кликбейтный заголовок. Более того, хочется уже спросить "что ж ты, фраер, сдал назад?" Особенно, после "Это не значит, что в Docker больше нет необходимости" ?

Вам показалась. Docker действительно больше не нужен. :)

С появлением Open Container Initiative. Случилось ли это до появления подмана или после, сказать не могу, но автор статьи в каментах делает отчаянные попытки скользить - это факт )

Да я просто первое что в голову пришло написал...

Да, я понял. Есть еще много моментов о которых в гайде не напишешь, например Docker Inc. является коммерческой структурой, которая в один прекрасный момент может решить свернуть проект Docker или продать часть бизнеса другому вендору, как это уже произошло с Docker Swarm. IBM\RedHat в этом контексте гораздо надежней для больших компаний, потому-что они могут гарантировать развитие проектов с открытым исходным кодом на десятилетия вперед. Хотя как уже успели убедится на примере Centos 100% никто дать не может.

Учитывая немалый вклад RedHat в экосистему Кубернетес, можно спрогнозировать, что Podman будет развиваться в плане добавления новых возможностей гораздо быстрее Docker.

Резюмируя: у Docker есть один фатальный недостаток (с)

История с CentOS показывает, что RedHat также ничего особо не гарантирует

Ну и Java тоже не нужна.

Нет уж позвольте!

Ну есть же c#, который и приятнее, и с сахаром, и развивается в быстром темпе.

Kotlin тогда уж. Но Java и так не так уж и плоха, особенно в последние несколько лет.

Таки c# и по фичам и сахару богаче котлина, и внедряет их быстрее.

По моим наблюдениям, котлин достаточно резво развивается. По поводу сахара - это субъективно :) Лично мне больше нравится котлин.

Конечно же, Вы имели в виду F#))

Ну и Java тоже не нужна.

Вы прям в корень зрите. Зачем нужна Java c JVM, если можно взять Elixir с BEAM, и вот вам уже и Java не нужна и Docker тоже не нужен (там своих фич хватает для горизонтального масштабирования и отказоустойчивости)

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

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

Для работы с docker не нужны root-привилегии. Достаточно добавить себя в группу docker.

Hidden text

dockerd внутри системы крутится от root, да.

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

Думал возразить, что процесс, работающий под root изолирован внутри контейнера. Но вспомнил, что можно же смонтировать любой каталог внутрь контейнера, и с правами root туда что-то записать..

Изолированные пространства имён всё-таки не стали панацеей для Podman: https://bdu.fstec.ru/vul/2023-03685 (https://cwe.mitre.org/data/definitions/269.html; https://cwe.mitre.org/data/definitions/281.html) - даже без операции монтирования общего с хостом каталога :)

В контексте CI/CD модульная структура Podman (Buildah, Skopeo, Podman) является серьезным преимуществом. Podman поддерживает интеграцию с Systemd и Kubernetes – но об этом я может быть расскажу в другой статье.

Просто слово "модульность" ни о чем не говорит. Мне так сотовый оператор периодически пытается впарить новый тариф, говоря что он "комплексный". На деле выходит, что в него просто включены ненужные мне функции, за которые я буду переплачивать.


В чем именно заключается преимущество модульности в данном случае?

Честно говоря я бы сказал, что «впаривать» пытается как раз Docker Inc. когда они интегрируют движок Кубернетес в Docker Desktop. :)

Может быть вы просто не работали в больших компаниях. Дело в том, что Docker хочет денег если вы используете их продукты в корпоративном окружении.

Кроме того, для ИБ возможность установки отдельной утилиты для работы с образами (Skopeo) без необходимости на каждом сервере разворачивать Docker daemon является плюсом. Просто может быть вы не знаете, что Docker при установке на Linux вносит изменения в правила Iptables, что с точки зрения безопасности является серьезным вопросом.

Дело в том, что Docker хочет денег если вы используете их продукты в корпоративном окружении

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

Все правильно. У меня нет никаких претензий к лицензированию Docker. Разработчики Docker создали потрясающий проект. Просто судя по тому как, коллега выше в комментариях написал про «впаривать» у меня есть серьезные сомнения, в том, что он как и большинство пользователей покупал лицензию Docker или учетную запись на Dockerhub.

И разработчики Podman тоже хотят денег, но не за Podman, а за доступ к экосистеме RedHat, что для российских компаний является больше предпочтительным вариантом, особенно в текущих условиях.

Слово "впаривать" я использовал в контексте того, как ваша статья очень категорично предлагает использовать новый инструмент вместо старого и не предоставляет достаточно веских аргументов. Это не про деньги, это про манеру подачи.

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

Похоронить вряд ли, но насколько помню, обычный Docker имеет некоторые проблемы с SELinux, которых нет в podman.

Второй плюс, видимо, в том, что докер для старперов, а подман это стильно и модно.

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

У «шила» есть лицензионное соглашение:

*Docker Desktop is free to use as part of the Docker Personal subscription for individuals, non-commercial open source developers, students and educators, and small businesses of fewer than than 250 employees AND less than $10 million in revenue. Commercial use of Docker Desktop at a company of more than 250 employees OR more than $10 million in annual revenue requires a paid subscription (Pro, Team, or Business).

Большинство российских компаний не возможности лицензировать Docker даже если бы было такое желание.

И это только один из моментов которые стоит учитывать.

Большинство российских компаний не возможности лицензировать Docker даже если бы было такое желание.

Вот только в заголовке нет ни слова про российские компании. :)

Docker desktop != docker

Docker Engine да лицензия Apache но у него есть другие недостатки по сравнению с Podman:

Podman позволяет конфигурировать короткие имена для реестров. В Docker «захрадкожен» docker.io когда вы выбираете короткое имя.

Podman может запускать контейнетры и поды и использованием YAML Кубернетес. А также он может генерировать YAML Кубернетес для запущенных контейнеров.

Podman поддерживает поды как в Кубернтес и может запускать несколько контейнеров в одном поде.

Podman работает как обычная CLI утилита, а Docker необходимо несколько демонов Linux с привилегиями root.

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

Podman поддерживает запуск systemd в конейнерах а также многие возможности systemd.

Podman не нужен для работы контейнеров, а Doсker использует демон Linux, который должен быть запущенн всегда.

Все настройки по-умолчанию в Podman можно кастомизировать в отличии от Docker. 

А почему бы просто не использовать Kubernetes вместо Podman? minikube, k8s и вот это вот все?

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

А мне кажется вы тупо путаете само создание контейнеров и их оркестрацию. И подман следует сравнивать не с докер, а с его прямыми конкурентами - докерсварм, кубер, опенщифт и др.

Нет, RedHat с первого дня начинал проект Podman как замену Docker.

https://developers.redhat.com/blog/2020/11/19/transitioning-from-docker-to-podman

Docker Desktop для Windows и macOS по некоторым параметрам все еще лучше конкурентов, а вот Docker Engine уже отстает от Podman по некоторым возможностям и в плане архитектуры.

Podman на рабочих станциях Linux выигрывает у Docker Desktop, если сравнивать производительность.

По вашей же ссылке, читаю

It also has a similar structure to similar tools such as Buildah, Skopeo, and CRI-O.

Вот с ними и сравнивайте.

И это только один из моментов которые стоит учитывать.

Если у вас контора с прибылью более 10 млн баксов в год, вы этот момент уж точно в состоянии учесть. Или скорее не вы, а профессиональный учитыватель моментов в отделе учёта софта учётного управления вашей корпорации, вам даже ничего делать не надо - просто отправить на согласование служебку "Хочу Докер".

Для компании Docker все оказалось немного сложнее :) они испытывали, определенные трудности с поиском клиентов готовых платить деньги, даже среди крупных корпораций. Однажды они могут решить отказатся от Docker Engine и Docker Desktop и передать эту часть бизнеса другому вендору как это уже было сделано с Docker Enterprise.

По-этому на десктопах и рабочих машинах под управлением macOS и Windows, Docker все еще номер 1, если говорить о user expirence, а вот на стороне CI/CD – он больше не нужен. Есть более перспективные варианты, например Podman.

Не надо так делать. Это черевато разными тонкостями реализаций. Когда софт ведет себя не так как ожидалось. И все тратят дни и недели чтобы понять что сломалось.

Есть стандарты - пользуйтесь ими. И купите уже Докер. Он для компании совсем недорогой.

Стандарты определяет Open Container Initiative. У большинства пользователей не должно возникнуть проблем с миграцией на Podman. Можно, даже использовать простой алиас «alias docker=podman» – большая часть функционала у Docker Engine CLI совподает с Podman.

Можете покупать Docker, но для российских компаний я все же рекомендовал бы научится собирать Podman из исходников, делать пакеты RPM и DEB, и пользоваться Linux.

Это для того, чтобы, однажды у них не отозвали оплаченные лицензии и не заблокировал учетки на GitHub, как это уже происходило не раз. :)

Большая часть это очень мало на самом деле. Проблемы они в последних 2 процентах всегда. И эти проблемы могут стоить много миллионов.

Купить это лучший выбор обычно. При чем тут российские компании непонятно. Лицензия едина для всех. Ну если Докер их продавать не хочет, то другое дело. Тогда стоит подумать. И вероятно купить через прокладку. Их навалом у всех уже. А если продает купить и забыть о проблеме надолго.

Отозвать оплаченные лицензии нельзя. Они ну просто есть.

Мне кажется ты совсем понимаешь суть вопроса. Компания может купить лицензии GitHub, Dockerhub и Docker, а потом в один день, по независящем от нее причинам, у этой компании отзовут лицензии и удалят репозитории с исходным кодом, который стоил миллионы.. Это вполне реальная ситуация.

Кстати о стандартах в IT можно сказать, что они постоянно меняются. Когда-то WebSphere и Drowizard были стандартами, а Docker непонятной новой игрушкой. Стандарты будут меняться, а вместе с ними и инструменты.  

Вы точно знаете как тот же Гитхаб Энтерпрайз работает? Мне кажется что нет.

Большие ребята договорились и разошлись по хорошему. Никто никому ничего никогда не удаляет в корпоративной сфере. Тем более внезапно. Там большие деньги. И все в курсе что потом все снова вместе работать будут. Отношения портить не стоит. Конкуренты про все узнают и будут этим пользоваться годами. Это сильный козырь.

Вот как стандарт сменится тогда и приходите. Ничего не имею против новых отраслевых стандартов. Буду переходить и внедрять без всяких проблем или сопротивления. Подман сейчас заметно не тянет на отраслевой стандарт. Через годик стоит еще раз на него посмотреть. Может что и изменится.

И купите уже Докер

Не надо смешивать Docker и Docker Desktop. Если вам нужно первое, его можно получить миллионом способов, например через Podman Desktop.

Что-нибудь кроме докера уже научилось билдить виндовые контейнеры? Спойлер: нет. Заголовок осуждаю.

Что-то тут мне интересно стало, а как в непривелигированном podman работают виртуальные сети?


Как без общего реестра будет выделен новый адрес для созданного контейнера? А как создаётся сеть в подмане? Как там вообще работает DNS, резолвящий имена контейнеров? Как без прав рута пробрасывается порт?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории