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

Разница между виртуализацией и контейнеризацией?

Контейнеры предоставляют изолированную среду для запуска приложения. Все пользовательское пространство явно выделено для приложения. Любые изменения, сделанные внутри контейнера, никогда не отражаются на хосте или даже других контейнерах, работающих на том же хосте. Контейнеры - это абстракция прикладного уровня. Каждый контейнер - это отдельное приложение.

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

Как работает Docker?

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

Что такое Docker контейнер и каковы его преимущества?

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

Что такое образ Docker?

Образ Docker является источником контейнера Docker. Или можно сказать, что образы Docker используются для создания контейнеров. Когда пользователь запускает образ Docker, создается экземпляр контейнера. Эти образы могут быть развернуты в любой среде Docker.

Объясните архитектуру Docker?

Docker состоит из Docker Engine, который является клиент-серверным приложением:

  • Сервер, который является типом долго выполняющейся программы, называемой процессом демона (команда docker);
  • REST API, который определяет интерфейсы, которые программы могут использовать для общения с демоном и указания ему, что делать;
  • Клиент интерфейса командной строки (CLI) (команда docker);
  • Интерфейс командной строки использует API-интерфейс Docker REST для управления или взаимодействия с приложениями-демонами Docker с использованием базовых API и CLI.

Что такое Docker Hub?

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

Что такое Docker Compose?

Docker Compose - это файл YAML, который содержит сведения о службе, сети и томах для настройки приложения Docker. Таким образом, вы можете использовать Docker compose для создания отдельных контейнеров, размещения их и обеспечения связи с другими контейнерами.

Что такое Docker Swarm?

Docker Swarm - container orchestration tool. Является родной кластеризацией для Docker. Он превращает пул Docker-хостов в один виртуальный Docker-хост. Docker Swarm обслуживает стандартный Docker API, любой инструмент, который уже взаимодействует с демоном Docker, может использовать Swarm для прозрачного масштабирования на несколько хостов.