Означает ли спецификация OCF, что Docker больше не ориентирован на Linux?

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

Некоторое время казалось, что Docker ориентирован на Linux и зависит от https://linuxcontainers.org/.

Теперь кажется, что Docker перешел с LXC на реализацию спецификации Open Containers Format (OCF) в runc.

Мой вопрос: означает ли спецификация OCF, что Docker больше не ориентирован на Linux? (то есть так ли это будет работать? Означает ли это, что теоретически существует возможность сделать это и в OSX?)

3 ответа

Решение

Здесь есть несколько интересных мест.

  1. Контейнеры могут поддерживаться только на платформах, поддерживающих виртуализацию ОС. OSX (пока) не имеет такой возможности. Так что он не может поддерживать контейнеры изначально. Вы должны использовать виртуальную машину.
  2. Стандартизированный формат контейнера не означает, что один и тот же контейнер сможет работать на разных платформах. Контейнер и хост обязательно должны работать на одном и том же ядре. Таким образом, конкретный контейнер может работать только на совместимой платформе.
  3. Спецификация стандартизированного формата контейнера состоит в том, чтобы обеспечить более богатую экосистемную технологию контейнера из различных источников, способную взаимодействовать благодаря стандартному формату контейнера. Эта технология все еще должна быть реализована для каждой отдельной хост-платформы.
  4. Принятие докером OCF не обязательно означает, что он автоматически начнет нацеливаться на платформы, отличные от Linux. Это просто означает, что формат контейнера, который он будет использовать в Linux, будет OCF, а не его собственным проприетарным форматом.

+1 к Ziffusion. Возможно, вы захотите перефразировать пункт 1), но в целом вы правы по всем четырем пунктам.

Чтобы ответить на вопрос ОП: я не верю, что OCF "осуждает" Linux. Наоборот, я считаю, что он лучше поддерживает Linux И, В то же самое время, открывает функциональность Docker для лучшей поддержки и других ОС.

В частности:

https://www.opencontainers.org/faq

В последние два года наблюдается быстрый рост интереса и использования контейнерных решений. Почти все крупные поставщики ИТ-услуг и облачные провайдеры объявили о решениях на основе контейнеров, и в этой области также появилось множество новых компаний. Хотя распространение идей в этом пространстве приветствуется, обещание контейнеров как источника переносимости приложений требует установления определенных стандартов в отношении формата и времени выполнения. Несмотря на то, что быстрый рост проекта Docker сделал формат изображения Docker де-факто стандартом для многих целей, существует широкий интерес к единой спецификации открытого контейнера, которая:

а) не привязан к конструкциям более высокого уровня, таким как конкретный клиент или стек оркестровки,

б) не тесно связаны с каким-либо конкретным коммерческим продавцом или проектом, и

c) переносимость между различными операционными системами, аппаратным обеспечением, архитектурой процессора, общедоступными облаками и т. д.

В FAQ также говорится:

Какие значения определяют спецификацию?

  • Наборный. Все инструменты для загрузки, установки и запуска контейнеров должны быть хорошо интегрированы, но независимы и компоноваться. Форматы контейнеров и время выполнения не должны быть привязаны к клиентам, к инфраструктурам более высокого уровня и т. Д.

  • Переносимость: стандарт времени выполнения должен использоваться на разных аппаратных, операционных системах и облачных средах.

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

Open Container Initiative - это работа по созданию формата контейнера и среды выполнения, которая может работать на многих платформах, хотя многие концепции и требования будут основаны на основе Linux, из которой они были построены. Контейнер OCF по-прежнему указывает платформу, поэтому не ожидайте, что он сможет выполнить контейнер Windows на хосте Linux. Но ожидайте, что сможете управлять Linux, Windows и Y-контейнерами таким же образом и в экосистеме.

Некоторое время назад Docker перешел от LXC к использованию libcontainer, который по-прежнему ориентирован на Linux. runC - это следующая среда выполнения, которая уже может запускать текущие док-контейнеры в Linux, но нацелена на поддержку спецификации Open Container Format на многих платформах.

Цель runC - сделать стандартные контейнеры доступными везде

Очевидно, что в последние 10 лет Linux создавал функции ОС для поддержки контейнеров. Microsoft включила множество компонентов ОС в Windows 10 для естественного запуска контейнеров и предоставила поддержку за докером. Поэтому ожидайте, что runC скоро будет запущен в Windows.

BSD поддерживает большую часть функциональности через установку Jails, но никогда не развивалась так сильно, как пространство Linux, поэтому я полагаю, что для этого потребуется дополнительная поддержка OS, или OSX, чтобы иметь возможность запускать контейнер OCF изначально. Хотя последняя версия FreeBSD 11 позволяет вам запускать Docker через 64- битный уровень совместимости с Linux, поэтому я предполагаю, что runC будет близок к тому же, с некоторыми возможными потерями производительности.

Другие вопросы по тегам