no-style

Что такое Docker

<< Назад

Что такое Docker

Docker - относительно новый способ виртуализации, который дал миру концепцию микросервисов. Docker позволяет "упаковывать" Ваше приложение с необходимым для его работы окружением и зависимостями в так называемый "контейнер". Данный контейнер очень просто развернуть на любой Linux-системе и на некоторых Windows и Mac системах. Так же Docker позволяет контролировать работу самих контейнеров - запускать / останавливать / перезагружать / удалять / клонировать.







Преимущества Docker

Одно из серьёзных преимуществ которые открывает Docker - возможность масштабировать буквально что угодно. Например написали вы какой то крутой питонячий скрипт, запихнули его в контейнер, развернули несколько копий данного контейнера в разных географических независимых локациях - поставили перед этим всем делом load-balancer или скажем reverse proxy и вот у вас уже отказоустойчиваемая инфраструктура сделанная буквально на коленке. Понятное дело что в продакшене этим занимаются целые отделы, но если очень надо то мы тоже можем использовать такую возможность - обсалютно бесплатно.







Docker для разработки

Ещё бывают ситуации когда для разработки нужно быстро поднять какой нибудь сервис. Например Nginx или MySQL. Запросто. Причём Вас никто не ограничивает и можно сразу поднять например несколько контейнеров в одном будет скажем php5 в другом php7 и всё это будет работать одновременно без танцев с бубном (ну почти - для начала надо будет освоить синтаксис для взаимодействия с докером)







Docker Hub

Киллер фичей для многих будет наличие Docker хаба. Площадка на которой размещено огромное количество готовых образов - как официальных так и любительских. Приведу пример: Вам совсем не обязательно знать все тонкости поднятия VPN - гораздо проще скачать готовый контейнер, поднять его и уже учиться взаимодействовать с работающим. Может Вы хотите поднять LEMP стек и накатить туда самую последнюю версию Wordpress ? Да запросто! Не забываем что настроив это всё 1 раз можем легко переносить сайт целиком буквально в пару комманд - без необходимости устанавливать какие либо зависимости(они уже внутри самого контейнера), всё что необходимо для переноса это поставить Docker на другом хостинге, залить туда контейнер и просто его поднять в одну комманду. Разве это не прекрасно ?!?!







Docker как замена тяжелым панелькам

Почему бы и нет? В последнее время я предпочитаю переносить свои сайты в докер контейнеры. Для меня это гораздо проще чем взаимодействовать со всеми этими забагованными и неповоротливыми панельками такими как VestaCP, BrainyCP, Ajenti-V, ISPmanager, aapanel, которые расходуют ресурсы сервера непонятно куда.







Docker + Networking

Ещё одна фича которая мне очень понравилась - возможность создавать продвинутые сети для контейнеров. Можно спрятать от посторонних глаз то, что они видеть не должны и делается интуитивно просто.







Подводные камни

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

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