Visitors have accessed this post 1185 times.

Docker – что это такое?

1
0
1185
2 октября 2020 11:35
Автор: Rebrain Me
Docker

Visitors have accessed this post 1185 times.

Если вы считаете, что докер (англ. docker – портовый рабочий) – это тот, кто грузит контейнеры, вы правы по форме, но не по содержанию. В нашем случае Docker – это действительно удобный интерфейс для работы с контейнерами. Но не только. Давайте разбираться, что это такое и с чем его едят.

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

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

Принцип работы Docker

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

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

Зачем нужен Docker?

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

Какие проблемы решаем с помощью Docker:

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

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

Так для каких целей может использоваться Docker?

Для оперативной доставки ПО

Использование Docker позволяет увеличить скорость доставки приложения в несколько раз. Так, по сравнению с теми, кто Docker не использует, его пользователи делают доставку ПО в семь раз чаще, так как Docker позволяет наладить нужную периодичность.

Для стандартизации процессов и операций

Использование контейнеров позволяет упростить развертывание. А в случае появления багов – быстро откатиться к предыдущим версиям.

Для перемещения приложений

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

Для экономии финансовых и трудовых затрат

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

Для каких операций используется Docker?

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

Для работы с микросервисами

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

Для процессов непрерывной интеграции и доставки

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

Для обработки данных

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

Для управления инфраструктурой как кодом

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

От редакции

Если вам интересно посещать открытые онлайн-мероприятия по DevOps, Kubernetes, Docker, GitlabCI и др. и задавать вопросы в режиме реального времени, подключайтесь к каналу DevOps by REBRAIN*Анонсы мероприятий каждую неделю

Практикумы для специалистов по инфраструктуре и разработчиков — https://rebrainme.com.
Наш Youtube-канал — https://www.youtube.com/channel/UC6uIx64IFKMVmj12gKtSgBQ.

Агентство Fevlake, проектируем и поддерживаем IT-инфраструктуры с 2012 года — https://fevlake.com.

Комментарии (3)
Введено символов из возможных
Не отвечать

Вам также может понравится

Как мы боролись со спамом — чтобы быстро и бесплатно. И забороли
array(1) { [0]=> object(WP_Term)#11799 (16) { ["term_id"]=> int(1) ["name"]=> string(7) "Default" ["slug"]=> string(7) "default" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(1) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(1) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(1) ["category_count"]=> int(1) ["category_description"]=> string(0) "" ["cat_name"]=> string(7) "Default" ["category_nicename"]=> string(7) "default" ["category_parent"]=> int(0) } } Default

Автор - Сергей Попов

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

Слово «спам» имеет интересное происхождение. После Второй мировой войны в США оказалось слишком много мясных консервов от фирмы-производителя SPAM. И для...

15
0
7 декабря 2020
Как и для чего я автоматизировал проверку количества shapshot’ов
array(1) { [0]=> object(WP_Term)#976 (16) { ["term_id"]=> int(7) ["name"]=> string(6) "DevOps" ["slug"]=> string(6) "devops" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(7) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(19) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(7) ["category_count"]=> int(19) ["category_description"]=> string(0) "" ["cat_name"]=> string(6) "DevOps" ["category_nicename"]=> string(6) "devops" ["category_parent"]=> int(0) } } DevOps

Автор - Максим Куприенко
Ищем корень зла
Как-то я столкнулся с интересной задачей. А именно - при работе с системой виртуализации VMware vSphere иногда возникала следующая проблема: для некоторых виртуальных машин выполнение штатных операций (старт/стоп/перезапуск) стало занимать гораздо больше времени, а также падала производительность самой...

4
0
28 августа 2020
Базовая работа с nix. Каналы
array(1) { [0]=> object(WP_Term)#11799 (16) { ["term_id"]=> int(6) ["name"]=> string(5) "Linux" ["slug"]=> string(5) "linux" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(6) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(28) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(6) ["category_count"]=> int(28) ["category_description"]=> string(0) "" ["cat_name"]=> string(5) "Linux" ["category_nicename"]=> string(5) "linux" ["category_parent"]=> int(0) } } Linux

Автор — Юрий Изоркин

В предыдущей статье мы познакомились с ОС NixOS. Теперь рассмотрим возможности пакетного менеджера nix. Источником обновления пакетов для менеджера nix служат каналы.

Применение каналов позволяет:

зафиксировать ПО на определенной версии;
использовать устаревшее ПО, например, если какие-либо скрипты не...

2
0
27 ноября 2020