Nano Hash - криптовалюты, майнинг, программирование

Назначение команды FROM — файл Docker

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

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

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


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

02.01.2019

Ответы:


1

Контейнеры не работают под управлением полной ОС, они совместно используют ядро ​​основной ОС (как правило, ядро ​​Linux). Это поле «Операционная система хоста» на правом изображении.

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

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

02.01.2019
  • Предположим, что Windows является основной ОС, если я запускаю контейнер, говоря FROM ubuntu в Dockerfile, то эти исполняемые файлы C (скажем, /bin/ls, /bin/grep) в этом контейнере в основном представляют собой двоичные файлы на основе Linux (ELF-64). Как эти двоичные файлы (ELF-64) работают с хост-ОС Windows (двоичные файлы формата COFF)? с демоном докера посередине 02.01.2019
  • Если вы используете Docker для Windows в режиме контейнера Linux, он фактически будет запускать виртуальную машину Linux за кулисами. Все ваши контейнеры совместно используют ядро ​​Linux этой виртуальной машины (а не ядро ​​Windows). 02.01.2019
  • На самом деле, похоже, что это уже не так: hanselman.com/blog/ - не совсем Если вы знаете, как именно работает встроенная поддержка контейнеров Linux в Windows, она может быть чем-то похожа на подсистему Windows для Linux. 02.01.2019

  • 2

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

    02.01.2019
  • Идея состоит в том, чтобы установить только те пакеты, которые вам нужны, вместо того, чтобы собирать и упаковывать все в виде дистрибутива. Что именно вы связываете? Если у контейнера есть собственное ядро, то зачем мне использовать докер-контейнер? 02.01.2019
  • Если у контейнера есть собственное ядро ​​— его нет. Ядро используется совместно с хост-ОС. 02.01.2019
  • Да, так же, как сказал @Max выше. Здесь демон Docker управляет вашим ядром и тем, как оно использует доступные ему ресурсы. 02.01.2019

  • 3

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

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

    02.01.2019
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

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

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..