12 интересных идей проекта Docker для начинающих [2022]

Опубликовано: 2021-01-07

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

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

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

Экосистема Docker состоит из четырех крупных проектов, а именно Moby, Kubernetes и Containerd. Однако это еще не все — в Docker есть гораздо больше, чем эти три проекта. Каждый день сообщество Docker активно работает над разработкой лучших в своем классе проектов и инструментов как с Docker, так и для него, чтобы разработчики по всему миру могли создавать и развертывать приложения, которые могут работать где угодно. Если вы хотите изучить DevOps, Docker — важный раздел для изучения.

Научитесь создавать приложения, такие как Swiggy, Quora, IMDB и другие.

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

Оглавление

Лучшие идеи проекта Docker

1. РанчерВМ

Любой, кто использует Docker, наверняка знает, что такое Rancher. Это поставщик контейнеров как услуг, который включает в себя множество наиболее широко используемых сред оркестрации и планирования контейнеров — Docker Swarm , Kubernetes и Mesos . RancherVM — один из менее известных проектов Rancher, который позволяет запускать виртуальную машину внутри контейнера Docker. Он оснащен веб-интерфейсом для управления открытыми ключами, вычислительными узлами, виртуальными машинами и для доступа к консолям VNC из веб-браузера.

С RancherVM вы можете создавать виртуальные машины, которые работают внутри модулей Kubernetes, также известных как модули виртуальных машин. Каждый модуль виртуальной машины включает в себя контейнер, на котором запущен экземпляр виртуальной машины. В настоящее время RancherVM поддерживает только образы KVM. Итак, вы можете упаковать любой образ KVM как образ Docker, распространить его с помощью любого реестра Docker (например, DockerHub) и запустить на RancherVM.

Кроме того, RancherVM расширяет API Kubernetes за счет пользовательских определений ресурсов (CRD). Вы можете определить спецификацию VirtualMachine CRD, указав, какой базовый образ, сколько вычислительных ресурсов и какие пары ключей авторизованы для инициирования сеанса SSH. Затем контроллер Kubernetes создаст модули виртуальных машин в соответствии с предоставленными вами спецификациями и отобразит их в статусе VirtualMachine CRD.

Узнайте больше: 10 лучших увлекательных проектов DevOps для начинающих [2020]

2. Докеркрафт

В ноябре 2015 года Microsoft выпустила Dockercraft на всеобщее обозрение. Он был запущен на GitHub с открытым исходным кодом и специально разработан для того, чтобы позволить разработчикам управлять своими контейнерами Docker в популярной игре Minecraft , которую Microsoft купила за 2,5 миллиарда долларов США !

Согласно GitHub , Dockercraft — это «простой клиент Minecraft Docker для визуализации контейнеров Docker и управления ими» в 3D-среде Minecraft. Это не совсем сложный менеджер Docker, реализованный в Minecraft, а скорее упрощенный способ визуализации и переключения переключателей в контейнерах Docker.

Важно помнить, что для использования Dockercraft у вас должна быть установлена ​​полная версия Minecraft на вашем ПК. Если он у вас уже есть, вы можете скачать Dockercraft с Github . После того, как вы завершили настройку, вам нужно запустить контейнер Dockercraft и присоединиться к пользовательскому серверу Minecraft — Cuberite.

3. Вино

Самый большой недостаток Docker заключается в том, что Dockerized-приложения не являются кросс-платформенными, а это означает, что вы не можете изначально запускать Docker-приложение для Windows в Linux. Для решения этой проблемы был создан Wine . Wine on Docker был разработан, чтобы позволить приложениям Windows работать в ОС Linux так же, как локальное приложение может работать из любой точки мира. В Docker он известен как Wine, тогда как в GitHub мы называем его Docker-Wine.

Wine использует уровень совместимости Wine для поддержки приложений Windows в Linux. Поскольку Wine поставляется с драйверами Dynamic Video и VirtualGL как с локальной, так и с удаленной поддержкой, он должен хорошо работать с готовыми картами Nvidia и драйверами Nvidia и даже с другими картами, использующими драйверы Mesa. Вы можете настроить Wine на автоматическую адаптацию к любым установленным вами драйверам, при условии, что они являются самыми последними для вашей ветки.

4. Докер-Мон

На данный момент существует всего несколько сервисов мониторинга образов Docker, например Shipyard . И хорошо известно, что разработчики/программисты любят инструменты, которые позволяют им получить доступ ко всем основным требованиям внутри оболочки. Docker-Mon — один из таких консольных инструментов мониторинга Docker. Docker-mon основан на Blessed-Contrib , фреймворке панели инструментов, ориентированном на оболочку.

Этот проект все еще находится в стадии разработки, и он опирается на функцию статистики докеров , которая еще не запущена. Итак, чтобы использовать Docker-Mon, вам понадобится либо мастер -сборка, либо грядущая v1.5.0 (вы можете проверить запуск v1.5.0-rc1 здесь ).

5. Пассажирский докер

Все мы знаем, что Phusion Passenger — фаворит разработчиков Rails. Основная цель этого сервера приложений — создать подходящую среду, в которой разработчики могут без проблем запускать свои приложения. Эта идея и послужила толчком к созданию проекта Passenger-Docker. Цель состояла в том, чтобы разработать разумный базовый образ по умолчанию для разработчиков, которые хотят реализовать Docker в своей производственной среде.

Passenger-Docker — это набор образов Docker, предназначенных для использования в качестве основы для образов веб-приложений Ruby, Python, Node.js и Meteor. Сохраняя основную мантру Phusion Passenger, проект Passenger-Docker стремится упростить и ускорить процесс создания образов Docker для веб-приложений.

6. КубеВирт

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

KubeVirt стремится расширить функциональные возможности Kubernetes за счет включения дополнительных типов ресурсов виртуализации через API-интерфейс Kubernetes Custom Resource Definitions . Вы можете использовать KubeVirt для создания предопределенной виртуальной машины, запуска виртуальной машины, остановки виртуальной машины, удаления виртуальной машины, а также планирования виртуальной машины в кластере Kubernetes. Тем не менее, KubeVirt все еще находится в стадии разработки.

Подробнее: Kubernetes Networking: полное руководство по пониманию сетевой модели

7. Журнал

Docket — это настраиваемый реестр Docker, который обеспечивает молниеносное развертывание через BitTorrent. Он позволяет развертывать образы Docker на большом кластере машин с впечатляющей скоростью. Docket был спроектирован и разработан за 48 часов в рамках 48-часового хакатона Gopher Gala Golang! Написанный на Golang, Docket удобен для пользователя и может хорошо работать с вашим частным реестром Docker.

Docket состоит из трех основных компонентов:

  • Docket Registry: это служба REST, которая работает как реестр. Он может получать tar-архивы образов Docker от клиента, сохранять метаданные в базе данных и создавать из них торренты, а также раздавать их.
  • Docket Client: это интерфейс, с которым взаимодействует конечный пользователь. Он позволяет просматривать доступные образы в реестре, передавать образ в реестр и извлекать образ из реестра (это запускает развертывание BitTorrent).
  • BitTorrent Tracker: хотя в Docket есть функция BYOT (принеси свой трекер), мы рекомендуем вам установить opentracker для отслеживания BitTorrent.

8. Инструмент миграции контейнеров (CMT)

Контейнеры Docker хороши тем, что они переносимы, т. е. могут работать на любом типе хоста, на котором установлен Docker. Однако в Docker отсутствует встроенная функция, позволяющая перемещать запущенные контейнеры из одного кластера в другой по сети. Чтобы усложнить задачу, Checkpoint & Restore (CR) все еще является относительно новой функцией, которая обычно недоступна для пользователей контейнеров. CR требует определенного уровня понимания его функциональности, и обычно большинство пользователей, плохо разбирающихся в функциях CR, получают ошибки при выполнении CR из-за различий/ограничений между исходным и целевым хостом.

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

9. dockerfile_lint

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

Вы можете использовать правила dockerfile_lint для проверки синтаксиса файла, произвольной семантики и атрибутов передового опыта, которые определяются автором файла правил. Кроме того, вы можете использовать линтер для проверки правил LABEL на образах Docker. Файлы правил написаны в YAML . Все правила реализованы с использованием регулярных выражений и могут выполняться по одной инструкции Dockerfile за раз. Файл правил состоит из четырех разделов:

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

10. Докермикс

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

Проект Dockermix теперь был переименован в Maestro , а его разработка перешла к организации Toscanini. Чтобы получить доступ к текущему исходному коду, вы можете проверить проект Maestro .

11. Поваренная книга Докера

Docker Cookbook включает все необходимые ресурсы для установки Docker, создания, управления и запуска контейнеров Docker. Этот проект Docker связан только с контейнерным движком Docker , распространяемым Docker, Inc., и не касается инструментов экосистемы Docker или других технологий, таких как Cgroups или AUFS.

Чтобы использовать Docker Cookbook, на вашем компьютере должен быть установлен Chef v12.15 или более поздней версии. Cookbook предлагает поддержку нескольких платформ, включая Amazon Linux, Fedora, CentOS 7, Debian 8/9 и Ubuntu 14.04/16.04. Кроме того, он может автоматически настроить репозитории пакетов Docker восходящего потока.

12. Докку

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

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

Изучайте онлайн -курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Подведение итогов

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

Если вам интересно узнать больше о больших данных, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения с полным стеком, которая предназначена для работающих профессионалов и предлагает более 500 часов тщательного обучения, более 9 проектов и заданий, IIIT -B статус выпускника, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Подготовьтесь к карьере будущего

Подать заявку на участие в программе Executive PG в Full Stack Development