Докер от корки до ядра, что и как работает

В начале вы должны знать, что в настоящее время докер имеет фундаментальную концепцию, а контейнер — это полезный инструмент для упаковки, доставки и запуска приложений без необходимости в специальном оборудовании или программном обеспечении, но перед тем, как начать, мы должны знать разницу между «виртуальным машина» (ВМ) и «Контейнер»

Что такое контейнеры и виртуальные машины?

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

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

гипервизор – это часть программного или аппаратного обеспечения, используемая для управления работой виртуальных машин. Сами гипервизоры работают на физических компьютерах, называемых «хост-машиной». Гипервизоры предоставляют необходимые им виртуальные аппаратные ресурсы, такие как ОЗУ и ЦП. Эти ресурсы разделены между виртуальными машинами. Таким образом, если на виртуальной машине запущено тяжелое приложение, гипервизор выделит ему больше ресурсов, и виртуальная машина не будет иметь прямого доступа к оборудованию только через гипервизор.

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

Что такое компоненты докера?

  • Докер Двигатель
  • Докер-клиент
  • Докер Демон
  • Докерфайл
  • Докер-образ
  • Объединение файловых систем
  • Объемы
  • Докер-контейнеры
  • Докер Реестр

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

Докер Двигатель:

это слой, на котором работает Docker. Его основная обязанность — управление контейнерами, образами, сборками и многим другим.

Докер-клиент:

это слой, на котором пользователь может общаться с демоном докера, это похоже на пользовательский интерфейс для Docker.

Демон Докера:

запускается на хост-компьютере, выполняет команды, отправленные клиентом Docker, такие как создание, запуск и распространение контейнеров.

Докерфайл:

Файл Docker — это место, где мы пишем шаги или инструкции по созданию образа Docker. Некоторые виды инструкций:

  • ENV для создания переменных среды › ENV API-URL www.example.com
  • RUN для выполнения команд › RUN apt-get -y update
  • КОПИРУЙТЕ файлы из каталога рабочей области docker или из него в другой директор › КОПИРОВАТЬ . /USR/SRC/мое-приложение

Изображение докера:

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

Объединение файловых систем:

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

Объемы:

Они представляют собой каталоги (или файлы) за пределами файловой системы Union по умолчанию и существуют как обычные каталоги и файлы в файловой системе хоста, чтобы иметь возможность сохранять данные, а также обмениваться данными между контейнерами.

Докер-контейнер:

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

Реестр докеров:

Это серверное приложение, которое хранит и позволяет вам распространять образы Docker. Реестр является открытым исходным кодом, и мы используем его для:

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

Вывод:

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