Краткий обзор Docker

Что такое Докер? Docker — это инструмент, который позволяет разработчикам создавать, развертывать и запускать приложения в контейнерах. Проще говоря, Docker устраняет бесконечные конфликты конфигурации среды, которые могут возникнуть во время совместной работы. Docker можно использовать для одновременного запуска и обслуживания приложений в изолированных контейнерах. Команды разработчиков могут использовать его в дополнение к существующим методам доставки Agile и DevOps. Как платформа, Docker может безопасно работать в средах Linux и Windows.

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

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

  • Docker Enterprise Edition (Докер EE)
  • Docker Community Edition (Docker CE)
  • Докер Облако

Выбор варианта зависит от типа среды, которую вы настраиваете.

Создание образа Docker

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

Ниже приведен пример простого Dockerfile из Документации по Docker:

FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay

Настройка среды

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

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

Развертывание на сервереr

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

Сначала отправьте свое приложение в репозиторий. Затем перетащите свое приложение из репозитория на другие машины. Вы можете сделать это с помощью команды запуска docker. Команда автоматически найдет, извлечет и запустит ваше новое приложение.

Автоматизация процесса развертывания Docker

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

Вы можете следовать этому руководству по докеру, чтобы увидеть полный процесс автоматизации:

Кубернетес против. Докер

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

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

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

Docker Swarm — это собственный инструмент кластеризации и управления контейнерами для Docker. Kubernetes, с другой стороны, — это подход Google к оркестровке контейнеров. Он с открытым исходным кодом и работает с контейнерами Docker. Это один из самых многофункциональных и мощных фреймворков.

Сводка

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

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