LINUX.ORG.RU
ФорумAdmin

Совместимость основных образов Докер

 


0

1

Всем доброго времени суток. Я только начал изучать докер и столкнулся с проблемой. Если следовать инструкциям и мануалам то становится понятно что докер некая многослойная конструкция где на нижнем уровне ядро линукс (или миниатюрная виртуалка такового) а на верхних контейнер с процессом того или иного приложения. Насколько я понял в основе каждого образа (а стало быть и контейнера) лежит некий базовый образ ОС (а точнее его уникальное окружение) на которое сверху накатано приложение. Так вот представим что у меня имеется типовой стек АПАЧ + МУСКУЛ + ПХП и все 3 образа допустим созданы на базе различных ОС. Одна допустим на дебиане а другая на основе той же убунты. Если я на базе этих 3х образов запущу 3 контейнера то такая конструкция вообще будет работать? Или нужно искать образы совместимые между собой?

Я не хардкорный админ поэтому прошу объяснить простыми словами. Спасибо.

Ответ на: комментарий от Radjah

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

Empiric-85
() автор топика

Не имеет значения, ты работаешь напрямую с приложением, которое запущено внутри.
Если будешь лепить свои образы, то лучше использовать базу того дистра который лучше знаешь.

stormblastt ★★★
()

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

Есть у тебя Drupal и MySQL - можно их на разных серверах (обычных железных) запускать или нет? Что еcли MySQL на CentOS, а Drupal на Ubuntu. Будут ли работать? Почему?

У тебя есть Apache и PHP-движок, можно их на разных серверах запускать или нет?

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

alpha ★★★★★
()
Ответ на: комментарий от stormblastt

ИЗ ЛЮБОПЫТСТВА А у разработчиков в докере вообще принято делать свои образы на основе нескольких базовых образов (нескольких ОС)? Или клепают свою софтинку на основе какого-то одного предпочтительного образа?

Empiric-85
() автор топика
Ответ на: комментарий от Empiric-85

Дисциплинированные разработчики клепают софтинки на основе протестированных базовых образов которые им выдают инфра/админы.

Но где вы видели дисциплинированных разработчиков.

alpha ★★★★★
()
Ответ на: комментарий от Empiric-85

На docker hub большинство образов основаны на debian, но при этом дополнительно есть с alpine.

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

stormblastt ★★★
()
Ответ на: комментарий от Empiric-85

> АПАЧ

МУСКУЛ

ПХП

ИЗ ЛЮБОПЫТСТВА

Не пользуйся капсом больше никогда.

докер запустим на винде то откуда в ней тогда берется ядро линукс?

«докер на винде» запускается в виртуальной машине.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от alpha

Т.е. получается что образы в докере ведут себя как отдельные железные серваки соединенные (или изолированные) между собой?

Empiric-85
() автор топика
Ответ на: комментарий от Empiric-85

Да. В целом это независимые сущности. Хотя если физически они на одном хосте, то можно по желанию объединять им дисковое пространство или сетевые интерфейсы.

Вопрос о том в принципе можно ли запускать debian-контейнер на centos-хосте - он конечно разумный. Потому что действительно, ядро от одной системы работает с данными другой. И встречаются связанные с этим хитрые баги, но они обычно не вылезают на уровне запуска простых приложений.

alpha ★★★★★
()

Если я на базе этих 3х образов запущу 3 контейнера то такая конструкция вообще будет работать?

Конечно будет, это одна из фич докера. Берешь любой образ под твою архитектуру и запускаешь.

но если мы этот же докер запустим на винде то откуда в ней тогда берется ядро линукс?

Он в виндовой виртулке крутится. Но вот собрать образ на винде я не смог.

KillTheCat ★★★★★
()

С точки зрения программ внутри контейнеров они работают на 3 разных машинах, и им обычно неважно, какая на другой машине ОС.

Если сильно хочется, чтобы все 3 были под одинаковой ОС, можно взять Dockerfile-ы, создавшие эти образы, попробовать копировать куски из одного в другой и создать свои образы. Там простой и очевидный синтаксис. Если они начинают со стандартного минимального образа и не указывают версии софта, для смены Убунты на Дебиан может быть достаточно заменить строку FROM.

question4 ★★★★★
()
Ответ на: комментарий от alpha

debian-контейнер на centos-хосте ... встречаются связанные с этим хитрые баги, но они обычно не вылезают на уровне запуска простых приложений.

Можно примеры багов?

question4 ★★★★★
()
Ответ на: комментарий от alpha

А, я неправильно понял исходное утверждение. Так да, логично. Пакеты собраны в расчёте на какие-то вызовы ядра, и могут вести себя неправильно при запуске на ядре без новых фич.

question4 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.