Как и почему ОС используется в качестве контейнеров на докере - PullRequest
0 голосов
/ 19 февраля 2019

Я только начал изучать докеры и контейнеры .Для меня имеет смысл, что я могу контейнировать свое приложение со всеми его зависимостями, развернуть его на Docker Engine и запустить его.Но я запутался, как ОС, такая как UBUNTU , разворачивается как контейнер на докере?Поскольку основная концепция, которую я понимаю, заключается в том, что Docker-контейнер не имеет или минимальных зависимостей ОС для приложения.Тогда почему ОС также используется в качестве контейнеров?ОС рассматривается как приложение в докере?или у них есть другое применение, и они просто обеспечивают минимальные зависимости для приложения?Было бы здорово, если бы кто-то смог объяснить это понятие.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Системы Linux содержат ядро ​​Linux и набор программ / утилит, которые определяют общее поведение и внешний вид системы.Что делает Docker легковесным по сравнению с технологиями виртуализации, так это то, что он разделяет ядро ​​ с хост-ОС.Но не остальные программы.

Вероятно, вы не захотите развертывать свое приложение на чистом ядре - вам нужны POSIX api вместе с менеджером оболочки и пакетов.Все это поставляется с Ubuntu или любым другим дистрибутивом, который вы предпочитаете.Итак, в контейнере вашего приложения вы выбираете наиболее подходящий дистрибутив Linux и используете соответствующий базовый образ докера.Обычно вы учитываете размер, менеджер пакетов по умолчанию и скользящие / стабильные правила развертывания.

Фактически, вы можете создать свой образ с LFS или минимальным кодом, используя FROM scratch директива, но я сомневаюсь, что это стоило потраченного времени.

Итак, возвращаясь к вашим вопросам:

Но я запутался, как такая ОС, как UBUNTU, развертывается в качестве контейнера на докере?

Просто монтируется как tar.gz rootfs

Тогда почему ОС также используется в качестве контейнеров?

Чтобы у вас был менеджер пакетов, glibc и другие вещи.Вам нравится RUN apt-get install -y whatever, не так ли?

Операционная система рассматривается как приложение в докере?

Нет, в Docker отсутствует концепция приложения .Единственный основной процесс, который поддерживает жизнь контейнера.И ОС НЕ рассматривается как основной процесс.

0 голосов
/ 19 февраля 2019

Docker предоставит минимальную версию операционной системы для развертывания вашего приложения.Например, если вы используете Alpine (самое маленькое изображение в докере), его размер составляет около 5 МБ.Вы должны вручную установить другой компонент, специфичный для вашего приложения.Docker предоставит вам платформу для создания контейнера.Внутри контейнера ваше желание, что вы хотите использовать.Вы можете использовать Alpine или любую другую продвинутую ОС, например Ubuntu, тогда вы можете развернуть свое приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...