
Резюме
- Контейнеры Docker — это легкая, автономная виртуальная система для запуска сервисов с минимальными требованиями к пространству и ресурсам.
- Docker упрощает настройку, управление, обновление и удаление различных служб.
- В моей домашней лаборатории, которая полностью работает на Docker, запущено более 30 сервисов, что демонстрирует его гибкость и простоту использования.
Когда дело доходит до домашнего лабораторного тестирования, есть много сервисов и приложений, которые вы, возможно, захотите запустить. Хотя установка их по отдельности является вариантом, я выбрал путь Docker — и пути назад нет.
Что такое Docker?
Если вы никогда раньше не слышали о Docker, проще всего представить его как набор сверхмалых и легких виртуальных систем, работающих в одной среде.

«Виртуальные системы» Docker называются контейнерами, и каждая из них представляет собой лишь самое необходимое для работы дистрибутива Linux.
Контейнеры занимают очень мало ресурсов и места на вашем компьютере. Это позволяет вам развертывать множество служб, которые являются самодостаточными, не поглощая ресурсы. Это также означает, что когда вы удаляете службу из Docker, она полностью удаляется сама, не оставляя никаких следов.
Все зависимости и все остальное исчезают, когда он удаляется. Небольшой том может остаться, но очень легко обрезать неиспользуемые тома.

Докер, я выбираю тебя
Существует множество вариантов контейнерных сервисов. Долгое время TrueNAS использовал джейлы (хотя недавно перешел на Docker), есть Kubernetes, виртуальные машины, контейнеры LXC и, вероятно, больше. Docker — это всего лишь один сервис из многих. Почему я выбрал его?
Docker, по моему мнению, является самым простым в настройке ПО для контейнеризации, а также одним из самых надежных. В Docker Hub более 10,000 XNUMX контейнеров Docker, и это только одно место, откуда можно брать приложения. Неважно, что вы хотите запустить, скорее всего, для этого есть контейнер Docker.
Jails более ограничены в своих функциях и доступности. Kubernetes, хотя и основан на Docker и запускает контейнеры Docker, просто сложнее настроить для домашней лабораторной среды, поскольку он больше ориентирован на корпоративное использование. Виртуальные машины хороши и все такое, но это всего лишь установка программного обеспечения на голое железо в операционную систему, и это не то, что мне нужно. Контейнеры LXC очень похожи на контейнеры Docker, но ими не так просто управлять, как Docker.

Первоначально я начал использовать Docker в 2021 году, когда я развернул свой первый сервер Unraid. Это было моим требованием даже тогда, когда я начал по-настоящему погружаться в мир домашнего лабораторного тестирования. По сей день это мое требование на любом сервере, который я запускаю. Будь то виртуальная машина Ubuntu или NAS без ОС, у него должны быть возможности Docker.
Docker также чрезвычайно прост в использовании и понимании. Хотя я много лет управлял веб-серверами, установка зависимостей, настройка файлов JSON и попытки отладки служб никогда не были для меня простыми. Удаление чего-либо было еще сложнее в половине случаев. Docker упрощает это.
Мне нравится, как легко я могу запустить службу в Docker, протестировать ее, оценить и решить, стоит ли ее оставлять.
Буквально на днях я запустил Uptime-Kuma на своем основном хосте Docker. Мне понравился сервис, но я хотел запустить его на машине с лучшим временем безотказной работы, чем мой основной экземпляр Docker. Поэтому я просто развернул еще один контейнер Uptime-Kuma на другом хосте Docker, который у меня есть, и через несколько минут я был готов снова работать.
Я управляю более чем 30 сервисами, все на Docker
Вся моя домашняя лаборатория работает на Docker. Я могу вспомнить только один сервис, который не работает на Docker, и я на самом деле думаю перенести его в контейнер Docker.

Краткий список некоторых услуг, которые я реализую в своей домашней лаборатории:
- АудиоКнижная полка
- калибр
- Калибр-Веб
- Домашний помощник
- Иммих
- Менеджер прокси-серверов Nginx
- Plex
- Зашифровано
- Pi-Hole
Это сервисы, которые работают на моем основном экземпляре Docker. У меня также есть Docker, работающий на моем Raspberry Pi, который управляет Uptime-Kuma и скоро запустит мой резервный экземпляр Pi-Hole.
У меня есть две вторичные виртуальные машины, на которых запущен Docker. Эти виртуальные машины используют Ubuntu 24.04 в качестве базы и Docker в качестве контейнерного хоста. Причина, по которой они являются двумя отдельными виртуальными машинами от моей основной Docker VM, заключается в том, что службы просто работают лучше, когда они разделены на разных машинах. Эти две виртуальные машины запускают мой игровой сервер Pterodactyl и панель управления.
Docker упрощает лабораторную работу в домашних условиях
Независимо от того, хотите ли вы заняться домашним лабораторным творчеством или уже делаете это, я искренне считаю, что Docker — это то, что должен использовать каждый.
Если вы не испытали жизнь контейнерной домашней лаборатории, то вы многое упускаете. Docker способен на многое, включая переход в область высокой доступности, что я планирую исследовать позже в этом году.

Наличие всех ваших служб в качестве автономных контейнеров просто упрощает управление ими. Будь то обновление одной службы и отсутствие обновления другой, удаление чего-то, что вы больше не используете, или просто развертывание нескольких контейнеров, которые все общаются друг с другом, но отделены от вашей основной ОС, Docker — это инструмент для этой работы.
Моя домашняя лаборатория не могла бы работать так, как она работает, без Docker. Я думаю, если вы попробуете, вы увидите, насколько это полезный инструмент для вашей установки.
Вы готовы окунуться с головой в контейнеры Docker? Вот 10 контейнеров Docker, которые, по моему мнению, должен запустить каждый. Этот список поможет вам начать работу с некоторыми основными службами, которые запускают мою домашнюю лабораторию через Docker, и их все довольно легко развернуть!