48. Альтернативы Docker

Обновлено: 2024-03-12
4 мин

Альтернативы Docker

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

Но, как я уже упоминал, существуют и другие альтернативы Docker. Если мы подумаем о том, что такое Docker и что мы уже рассмотрели. Это платформа для разработки, тестирования, развертывания и управления приложениями.

Я хочу выделить несколько альтернатив Docker, которые вы можете увидеть или увидите в будущем.

Podman

Что такое Podman? Podman - это контейнерный движок без демонов для разработки, управления и запуска OCI-контейнеров в вашей системе Linux. Контейнеры могут быть запущены от имени root или в режиме rootless.

Я буду рассматривать это с точки зрения Windows, но знаю, что, как и в случае с Docker, здесь не требуется виртуализация, поскольку он будет использовать базовую ОС, чего нельзя сделать в мире Windows.

Podman может быть запущен под WSL2, хотя и не так гладко, как в случае с Docker Desktop. Существует также удаленный клиент Windows, с помощью которого можно подключиться к виртуальной машине Linux, где будут запущены ваши контейнеры.

Мой Ubuntu на WSL2 - это версия 20.04. Следуя следующим шагам, вы сможете установить Podman на свой экземпляр WSL.

echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /" |
sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list

Добавим ключ GPG

curl -L "https://download.opensuse.org/repositories/devel:/kubic:\
/libcontainers:/stable/xUbuntu_20.04/Release.key" | sudo apt-key add -

Запустите обновление системы с помощью команды sudo apt-get update && sudo apt-get upgrade. Наконец, мы можем установить podman с помощью команды sudo apt install podman.

Теперь мы можем использовать многие из тех же команд, которые мы использовали для docker, однако обратите внимание, что у нас нет красивого пользовательского интерфейса рабочего стола docker. Вы можете видеть ниже, я использовал podman images и у меня ничего не появилось после установки, затем я использовал podman pull ubuntu для извлечения образа контейнера ubuntu.

Затем мы можем запустить наш образ Ubuntu с помощью podman run -dit ubuntu и podman ps, чтобы увидеть наш запущенный образ.

Чтобы попасть в этот контейнер, мы можем выполнить команду podman attach dazzling_darwin, имя вашего контейнера, скорее всего, будет другим.

Если вы переходите от docker к podman, то обычно также необходимо изменить ваш конфигурационный файл на alias docker=podman, тогда любая команда, запущенная с помощью docker, будет использовать podman.

LXC

LXC - это механизм контейнеризации, который позволяет пользователям снова создавать несколько изолированных контейнерных сред Linux. В отличие от Docker LXC действует как гипервизор для создания нескольких Linux-машин с отдельными системными файлами, сетевыми функциями. Появился еще до Docker, а затем сделал короткое возвращение из-за недостатков Docker.

LXC такой же легкий, как и docker, и легко развертывается.

Containerd

Автономная среда выполнения контейнеров. Containerd обеспечивает простоту и надежность, а также, конечно, переносимость. Ранее Containerd был инструментом, работающим как часть контейнерных сервисов Docker, пока Docker не решил вывести свои компоненты в самостоятельные.

Проект в Cloud Native Computing Foundation, что ставит его в один ряд с такими популярными контейнерными инструментами, как Kubernetes, Prometheus и CoreDNS.

Другие инструменты Docker

Мы могли бы также упомянуть инструменты и опции вокруг Rancher, VirtualBox, но мы можем рассказать о них более подробно в другой раз.

Gradle

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

Packer

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

Logspout

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

Logstash

  • Настройте свой конвейер с помощью подключаемой структуры Logstash.
  • Легко анализируйте и преобразуйте данные для анализа и повышения ценности бизнеса.
  • Разнообразие выходов Logstash позволяет направлять данные туда, куда вам нужно.

Portainer

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

Ресурсы