Докер от корки до ядра, что и как работает
В начале вы должны знать, что в настоящее время докер имеет фундаментальную концепцию, а контейнер — это полезный инструмент для упаковки, доставки и запуска приложений без необходимости в специальном оборудовании или программном обеспечении, но перед тем, как начать, мы должны знать разницу между «виртуальным машина» (ВМ) и «Контейнер»
Что такое контейнеры и виртуальные машины?
во-первых, цель у них одна и та же: изоляция приложения и его зависимостей в отдельном модуле, который может работать где угодно.
Виртуальные машины. Виртуальная машина — это эмуляция реального компьютера, который работает и выполняет программы, как настоящий компьютер. Виртуальные машины работают поверх физической машины с использованием гипервизора.
гипервизор – это часть программного или аппаратного обеспечения, используемая для управления работой виртуальных машин. Сами гипервизоры работают на физических компьютерах, называемых «хост-машиной». Гипервизоры предоставляют необходимые им виртуальные аппаратные ресурсы, такие как ОЗУ и ЦП. Эти ресурсы разделены между виртуальными машинами. Таким образом, если на виртуальной машине запущено тяжелое приложение, гипервизор выделит ему больше ресурсов, и виртуальная машина не будет иметь прямого доступа к оборудованию только через гипервизор.
Контейнеры. Одно большое различие между контейнерами и виртуальными машинами заключается в том, что контейнеры совместно используют ядро хост-системы с другими контейнерами, в отличие от виртуальных машин, в которых каждый использует свою операционную систему. Контейнер имеет отдельное рабочее пространство от других ресурсов контейнеров и совместно использует ядро хоста с другими контейнерами.
Что такое компоненты докера?
- Докер Двигатель
- Докер-клиент
- Докер Демон
- Докерфайл
- Докер-образ
- Объединение файловых систем
- Объемы
- Докер-контейнеры
- Докер Реестр
Как работает Докер?
Докер Двигатель:
это слой, на котором работает 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 — это очень мощная технология, которую должен изучить и использовать каждый разработчик программного обеспечения, потому что нет ограничений, как раньше, для запуска приложений на определенных требованиях к программному или аппаратному обеспечению.