Что такое Docker и как он работает | nt.ua

Что такое Docker и как он работает

Docker – это контейнерная платформа для Linux. Права на бренд принадлежат софтверной компании Docker.Inc из Сан-Франциско. Для стандартизации и развития используется свободный фреймворк Moby Project. Сама платформа предлагается в двух редакциях. Docker Community Edition поддерживается сообществом и распространяется бесплатно. Чтобы воспользоваться этой редакцией, пользователю нет необходимости предпринимать какие-либо действия по получению лицензий. Docker Enterprise Edition поддерживается и распространяется на коммерческой основе. Эта редакция предоставляет много дополнительных возможностей для администрирования и безопасной работы.

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

Docker состоит из нескольких основных компонентов.

  • Docker Client обеспечивает выполнение команд из командной строки docker CLI и взаимодействие с Docker Daemon.
  • Docker Daemon или dockerd является программным интерфейсом API и обеспечивает взаимодействие с другими приложениями. Главные функциональные возможности реализованы именно в Docker API.
  • Containerd или docker-containerd есть супервизором контейнеров и используется в командах start, stop и других командах для управления контейнерами.
  • Shim или docker-containerd-shim реализует контейнерную daemonless-модель, при которой контейнер может работать независимо от dockerd.
  • Runc или docker-runc обеспечивает работу контейнеров.

Docker использует CGroup, механизм ядра операционной системы Linux, который управляет вычислительными ресурсами процессора, сети, памяти, системы ввода и вывода, процессами и их группами, а также оптимизирует монтирование файловых систем. Фактически, Docker является слоем управления виртуализацией контейнеров, который осуществляет свои функции через Docker API.

Способ развертывания Docker зависит от версии и типа дистрибутива, а также основной операционной системы. Например, для Linux целесообразно воспользоваться стандартным скриптом развертывания. И Windows, и macOS поддерживают контейнерные Linux-платформы. Если Docker нужен именно в этих операционных системах, нужно воспользоваться соответствующим дистрибутивом и инструментарием командной строки.

Docker – безопасная и отказоустойчивая контейнерная платформа. Все образы или контейнеры работают в сети, их IP-адреса преобразовываются по методу NAT относительно основного хоста, при этом публикуются только нужные порты. Для безопасной коммуникации с репозиториями, например, Docker Hub могут применяться сертификаты.  Отказоустойчивость работы решений на основе Docker обеспечивается за счет кластеризации на основе технологии Swarm. Разработано большое количество инструментов для мониторинга работоспособности Docker.

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

Учебный центр «Сетевые Технологии» реализовывает комплексные учебные программы по контейнеризации и управлению на платформе Docker.