Назначение команды FROM - файл Docker - PullRequest
0 голосов
/ 02 января 2019

Основная цель контейнера Docker - избежать переноса гостевой ОС в каждый контейнер, как показано ниже.

enter image description here Как уже упоминалось здесь , инструкция FROM инициализирует новый этап сборки и устанавливает базовый образ для последующих инструкций. Таким образом, допустимый файл Docker должен начинаться с инструкции FROM.

Насколько я понимаю, FROM <image> позволяет контейнеру работать в собственной ОС.


Почему действительный файл Docker должен содержать инструкцию FROM?

Ответы [ 3 ]

0 голосов
/ 02 января 2019

Контейнеры не работают с полной ОС, они совместно используют ядро ​​хост-ОС (обычно это ядро ​​Linux). Это поле «Host Operating System» на вашем правом изображении.

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

Вы можете пропустить строку FROM в вашем Dockerfile или использовать FROM scratch, чтобы создать пустое базовое изображение , а затем добавить все части пользовательского режима поверх пустого ядра самостоятельно.

0 голосов
/ 02 января 2019

Еще одним распространенным применением FROM является объединение сборок в цепочки для формирования многоэтапной сборки небольших изображений.

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

0 голосов
/ 02 января 2019

Инструкция FROM указывает базовую архитектуру ОС, которую вы собираетесь использовать для создания образа. Вы должны использовать некоторую форму базового изображения, чтобы начать создавать изображение. Это может быть Ubuntu, Centos или любой другой минимальный образ Linux, такой как ALPINE, который составляет всего 5 МБ !. Идея состоит в том, чтобы устанавливать только те пакеты, которые вам нужны, а не собирать и упаковывать все как дистрибутив. Это делает размер образов докера очень маленьким по сравнению с полным дистрибутивом ОС. Надеюсь, это ответит на ваш вопрос. Дайте мне знать, если у вас есть какие-либо вопросы.

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