5 настольных альтернатив Docker

5 настольных альтернатив Docker

29 декабря 2022 г.

Для пользователей Windows и macOS Docker Desktop уже много лет является основным способом использования контейнеров Docker. Хотя он остается жизнеспособным и удобным вариантом для любителей и небольших групп разработчиков, недавние изменения цен для более крупных пользователей заставили людей искать альтернативы. Я не собираюсь сам заменять Docker Desktop, но мне было интересно попробовать альтернативы и посмотреть, как они сравнимы.

Видеоверсия этого поста

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

https://www.youtube.com/watch?v=C88x0ZnUEqc?embedable=true

Терминология

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

Стоит отделить Docker-компанию от Docker-проекта, так как их легко спутать, и это разные сущности. Из-за этой путаницы компания Docker переименовала и открыла исходный код многих своих технологий, связанных с контейнерами, внося свой вклад в то, что теперь известно как «Open Container Initiative”(ОСИ).

Я многое абстрагирую и резюмирую здесь, но когда остальная часть этого поста относится к «совместимым с OCI» контейнерам и подобным им терминам, думайте об этом как об аналоге того, что вы можете представить как «контейнер Docker». Все эти события и изменения на самом деле произошли некоторое время назад в технологическое время, но, тем не менее, это постоянный источник путаницы. Tldr… Все варианты, описанные в этом посте, могут запускать одни и те же определения контейнеров, включая уже существующие контейнеры из Docker Desktop или созданные с помощью Dockerfile. Еще одно замечание: часто в проектах контейнеры, работающие с Docker, называются «dockerd» и «Moby» взаимозаменяемо.

1. Подман

Вероятно, самая популярная альтернатива Podman имеет много участников из Red Hat, и, поскольку кажется, что Red Hat планирует коммерческую версию Podman, она может можно с уверенностью сказать, что это «проект Red Hat».

Он доступен для Windows, macOS и Linux и, как и многие другие представленные здесь инструменты, следует синтаксису, аналогичному Docker, с двумя оговорками:

  1. По умолчанию вы используете podman вместо Docker, но вы можете создать псевдоним и забыть об этом изменении команды.
  2. По умолчанию Docker Desktop предполагает, что вы хотите использовать образы контейнеров из концентратора Docker, тогда как все другие альтернативы по понятным причинам не делают этого предположения. Это означает, что вам необходимо указать полный путь ко многим образам, которые вы можете использовать регулярно, например, «docker.io/library/busybox". ли>

Одно из ключевых отличий Podman от других представленных здесь альтернатив, включая Docker Desktop, заключается в том, что он не содержит демонов. Это означает, что каждый работающий контейнер работает как отдельный процесс выполнения, а не через один демон. Если демон Docker дает сбой, все запущенные контейнеры выходят из строя, тогда как с Podman происходит сбой только отдельного контейнера. Тем не менее, лично у меня никогда не было сбоев в работе демона Docker, но я не запускаю рабочие нагрузки.

Как и все другие инструменты здесь, при первом запуске Podman необходимо создать виртуальную машину в macOS и Windows для размещения контейнеров. Все чаще в macOS и Windows это не всегда необходимо, но для максимальной межплатформенной (и архитектурной) совместимости это имеет смысл. Podman использует Fedora CoreOS (снова соединение Red Hat) и QEMU для запуска виртуальной машины.

Рабочий стол Podman

Графическим дополнением к Podman является Podman Desktop, но теоретически он должен отображать изображения и контейнеры, созданные другими средами выполнения, в т.ч. Как и многие другие графические инструменты, он также добавляет функции для взаимодействия с Kubernetes, но я рассмотрю их в следующем посте. Он предлагает те же функции, что и Docker Desktop, в том числе функции, которые, как я не знал, соответствуют каким-либо стандартам, например расширениям, но немного менее совершенны и лишены некоторых функций, специфичных для ОС, которые предлагает Docker Desktop.

2. Колима

Доступно только для Linux и macOS. Colima использует Lima, чтобы включить виртуальные машины Linux в macOS. Он поддерживает среды выполнения Docker, Containerd и Kubernetes, и во всех случаях вам необходимо установить эту среду выполнения вместе с Colima. В случае Docker на macOS это не совсем то же самое, что и Docker Desktop.

Каким бы простым ни было использование Colima, тот факт, что вам все еще нужно установить среду выполнения, заставил меня задуматься: «Что такое Colima?», и, честно говоря, минимальный объем документации не делает его более ясным. Слоган — «Среда выполнения контейнеров в macOS (и Linux) с минимальной настройкой», но это все еще не объясняет мне, зачем мне это нужно. Насколько я могу судить, основная причина заключается в использовании containerd или в качестве бэкенда Kubernetes (вместо Docker Dkestop, minikube и т. д.), и, возможно, основная причина поддержки Docker — обратная совместимость.

3. Рабочий стол Rancher

Хотя он в основном позиционируется как инструмент управления Kubernetes, Rancher Desktop также предлагает некоторые функции управления контейнерами за пределами Kubernetes. Он поддерживает контейнеры, работающие с containerd или Docker, и предлагает большинство тех же функций, что и другие графические инструменты в этом списке. Опять же, QEMU предоставляет виртуальную машину, на которой все работает, без возможности изменить это. Это вполне достойный инструмент и одна из наиболее зрелых альтернатив, но я часто нахожу необходимость перезапускать и сбрасывать виртуальную машину после внесения изменений, что становится немного утомительным.

4. VMWare Fusion

Если вы уже используете VMWare Fusion для запуска виртуальных машин Windows и Linux, он также поддерживает контейнеры. Однако в настоящее время эта функция работает только с компьютерами Mac на базе процессоров Intel, несмотря на то, что программа установки по-прежнему устанавливает инструмент командной строки и дает вам ложные надежды.

5. Параллели

Опять же, если вы уже владеете и используете Parallels Desktop для виртуальных машин Linux и Windows, вы можете использовать его в качестве серверной части. для minikube, который в основном предназначен для использования Kubernetes, но он примыкает к контейнеру, поэтому я включаю его как вариант.

Что я использую

На данный момент, как индивидуальный участник, я доволен Docker Desktop, и мне нравятся дополнительные функции, которые он предлагает для более эффективной и простой интеграции с операционной системой хоста.

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

А вы?


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE