Visitors have accessed this post 6568 times.

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

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

Visitors have accessed this post 6568 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)
Введено символов из возможных
Не отвечать

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

ТОП-8 книг по Docker
array(1) { [0]=> object(WP_Term)#11547 (16) { ["term_id"]=> int(8) ["name"]=> string(6) "Docker" ["slug"]=> string(6) "docker" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(8) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(8) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(8) ["category_count"]=> int(8) ["category_description"]=> string(0) "" ["cat_name"]=> string(6) "Docker" ["category_nicename"]=> string(6) "docker" ["category_parent"]=> int(0) } } Docker

Docker появился в 2013 году и до сих пор остается самым популярным инструментом контейнеризации. Так, например, он входит в ТОП-5 технологий, необходимых DevOps-инженеру, по мнению работодателей с hh. Для тех, кто предпочитает академический подход к изучению технологий, мы подготовили список книг, посвященных Docker.
Использование Docker. Моуэт...

9
0
23 октября 2020
Основы DevOps
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

Появление DevOps в 2009 (хотя, по некоторым источникам, это все-таки было в 2008) в корне поменяло процесс взаимодействия между отделами разработки и эксплуатации. До этого момента это были два совершенно разные подразделения со своими целями, задачами и KPI. Как следствие, они не слишком вникали в деятельность друга и часто возникала абсолютно...

5
0
25 сентября 2020
Kubernetes: 6 секретов успешных команд
array(1) { [0]=> object(WP_Term)#11547 (16) { ["term_id"]=> int(10) ["name"]=> string(10) "Kubernetes" ["slug"]=> string(10) "kubernetes" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(10) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(4) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(10) ["category_count"]=> int(4) ["category_description"]=> string(0) "" ["cat_name"]=> string(10) "Kubernetes" ["category_nicename"]=> string(10) "kubernetes" ["category_parent"]=> int(0) } } Kubernetes

Перевод статьи — https://enterprisersproject.com/article/2020/2/kubernetes-6-secrets-success

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

0
0
29 января 2021