← ТехнологииТехнология · Инфраструктура

Docker

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

Docker - платформа с открытым исходным кодом, которая запускает программы в изолированных пакетах - контейнерах, вместе со всем необходимым для работы. Выпущена компанией Docker, Inc. в 2013 году и стала одним из стандартных способов развёртывания приложений на серверах.

РазработчикDocker, Inc.
Год создания2013
ЛицензияApache-2.0
Официальный сайтdocker.com
01 / Обзор

Лучшая аналогия для Docker - морской контейнер. До появления стандартных контейнеров каждый груз загружали на судно в своей упаковке - медленно и с ошибками. Стандартный контейнер грузится на любое судно, поезд или грузовик одинаково, независимо от содержимого. Docker делает то же самое с программами: сайт или приложение упаковывается в контейнер вместе со всеми зависимостями (библиотеками и настройками, нужными для работы), и этот контейнер одинаково работает на любом сервере.

Такой подход решает известную проблему «у меня на компьютере работало». Программа часто работает на ноутбуке разработчика, но ломается на сервере из-за других версий и настроек. Внутри Docker-контейнера окружение везде одинаковое: контейнер, протестированный на ноутбуке, без изменений работает и на боевом сервере. Деплой (выпуск новой версии сайта) становится быстрее и заметно безопаснее.

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

Реальные проекты обычно состоят из нескольких частей: веб-приложение, база данных, кеш-сервер и так далее. Инструмент Docker Compose позволяет описать все эти части в одном конфигурационном файле и запустить их одной командой. Ядро Docker - Docker Engine - распространяется с открытым кодом по лицензии Apache-2.0, то есть за запуск контейнеров на своих серверах платить не нужно.

02 / Вопросы

Частые вопросы

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

Остался вопрос?Напишите нам