Docker или виртуальные машины. Что лучше для вашей домашней лаборатории?

Резюме

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

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

Что такое Docker-контейнер?

Если вы никогда раньше не слышали о контейнере Docker, вот собственное определение Docker: «… легкий, автономный, исполняемый пакет программного обеспечения, который включает в себя все необходимое для запуска приложения: код, среду выполнения, системные инструменты, системные библиотеки и настройки».

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

Docker или виртуальные машины. Что лучше для вашей домашней лаборатории?

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

Что такое виртуальная машина?

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

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

Docker отлично справляется с простым развертыванием множества сервисов

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

Мой хост Docker на самом деле является виртуальной машиной Ubuntu на моем сервере. В этом экземпляре Docker у меня в настоящее время настроено 31 контейнер, 29 из которых активно работают 24/7. Службы, которые я запускаю в своей системе Docker, включают такие вещи, как AudioBookshelf, Plex, Pi-Hole, Ghost, Immich, OpenSpeedtest, Scrypted и многие другие.

Docker или виртуальные машины. Что лучше для вашей домашней лаборатории?

Хотя можно установить каждое приложение по отдельности как отдельный пакет, это потребовало бы от меня установки массы зависимостей, даже если они нужны только для одного приложения. Затем, если вы удалите это приложение в будущем, у него будут устаревшие зависимости, которые больше не нужны ОС.

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

Docker или виртуальные машины. Что лучше для вашей домашней лаборатории?

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

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

Виртуальные машины лучше всего подходят для более надежных развертываний

Хотя я и люблю Docker, и подавляющее большинство служб в моей домашней лаборатории работают на нем, иногда выделенная виртуальная машина — это просто нужный инструмент для работы.

С виртуальной машиной у вас есть выделенный доступ к оборудованию на вашем компьютере. Это может быть использовано для создания игровой виртуальной машины, работающей под управлением Windows 11 с подключенной видеокартой. Это также может быть просто для создания второго (или третьего, или четвертого) экземпляра Docker.

Docker или виртуальные машины. Что лучше для вашей домашней лаборатории?

У меня было приложение Docker, которое давало мне проблемы при попытке запустить его в том же стеке, что и другие мои сервисы. Поэтому я развернул вторую и третью виртуальные машины Ubuntu, чтобы сервисы могли работать так, как будто они находятся на разных компьютерах, хотя все они размещены на одном и том же основном сервере.

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

Docker или виртуальные машины. Что лучше для вашей домашней лаборатории?

Проще говоря, виртуальные машины более надежны, чем контейнеры Docker, но и требуют больше ресурсов для работы.

Какой из них следует использовать в домашней лаборатории?

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

Docker или виртуальные машины. Что лучше для вашей домашней лаборатории?

По моему мнению, в 99% случаев вам будет достаточно контейнера Docker. Контейнеры Docker меньше и легче виртуальных машин, и требуют гораздо меньше настройки. Я могу развернуть 10 контейнеров Docker (может больше) за то время, которое мне требуется для установки сервера Ubuntu на виртуальной машине.

С другой стороны, определенно есть обстоятельства, когда выбор виртуальной машины просто лучше. Я знаю людей, которые запускают виртуальные машины Windows 11 на своих серверах для игры. Я также лично запускаю три виртуальные машины, которые выполняют различные задачи Docker. Одна из них — мой основной сервер Docker, а две другие запускают отдельные Docker для игрового сервера Pterodactyl, поскольку он лучше всего работает на выделенных компьютерах.

Поскольку у меня нет кучи выделенных компьютеров, запуск Pterodactyl на отдельных виртуальных машинах — это лучшее, что может быть. Что касается программного обеспечения (которое работает на Docker), оно работает на отдельных компьютерах. Однако все это работает на одной системе, что было бы невозможно без виртуальных машин.

Понравилась статья? Поделиться с друзьями: