Visitors have accessed this post 5753 times.

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

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

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

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

30 инструментов мониторинга системы Linux, которые должен знать каждый сисадмин
array(1) { [0]=> object(WP_Term)#11549 (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

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

0
0
28 мая 2020
Начало работы с OpenSSL: основы криптографии
array(1) { [0]=> object(WP_Term)#988 (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

Перевод статьи - https://opensource.com/article/19/6/cryptography-basics-openssl-part-1

Эта первая из двух статей, посвященных основам криптографии с использованием OpenSSL, библиотеки промышленного уровня и инструментария, популярного в Linux и других операционных системах. Утилиты OpenSSL доступны в командной строке, а программы могут...

4
0
7 сентября 2020
Как узнать, сколько места занимают файлы и директории в Linux
array(1) { [0]=> object(WP_Term)#11156 (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

Для того, чтобы через интерфейс командной строки узнать, сколько места занимают файлы и директории, в Linux используется команда du. 

du расшифровывается как disk usage (использование диска).

Синтаксис команды du:

du ...

Если запустить du без указания параметров, то она выведет все директории и поддиректории текущей директории....

10
0
21 августа 2020