Сколько контейнер Docker является переносным? - PullRequest
0 голосов
/ 20 апреля 2020

Я искал в Inte rnet, чтобы найти ответ на этот вопрос: насколько контейнер Docker переносим?

Мне известно об OCI, который является способом стандартизации, основанным Docker, и я также знаю, что вы не можете просто переместить Linux контейнеры на платформу Microsoft Windows и наоборот. Мой конкретный c вопрос: могу ли я перезапустить свой контейнер на другом хосте с другой версией ядра? Или с другой Docker версией?

Вариант использования: я ищу платформу, которая помогает в реальном времени переносить контейнеры с полным состоянием, управлять рабочими нагрузками, сокращать время простоя и повышать высокую доступность. В какой степени такая система ограничена базовыми системами, такими как Linux версия ядра, docker версия и др. c. Спасибо

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

Docker контейнеры используют ядро ​​хост-системы. Таким образом, вы можете запускать только программы внутри docker, совместимые с ядром хост-системы. Если ваша программа в контейнере Docker требует специального системного вызова и хост скомпилирован без него, вы потерялись.

* Windows версия Docker может запускать образы Linux с помощью виртуального машина, ср. https://docs.microsoft.com/de-de/virtualization/windowscontainers/deploy-containers/linux-containers

0 голосов
/ 20 апреля 2020

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

Docker не меняет требования к программному обеспечению внутри контейнера Docker. Что это значит ... если у программного обеспечения внутри будут проблемы на старом ядре, то при запуске его на Docker .. на старом ядре, вероятно, также будут проблемы. (проверьте ответы на этот вопрос, они многое объясняют: Как Docker обрабатывает разные версии ядра? )

Относительно версии Docker, есть страница в Docker документах объяснение критических изменений, которые вы можете найти здесь: https://docs.docker.com/engine/breaking_changes/

A Docker изображение не указывает версию Docker, с которой оно было построено .. если нет критических изменений между версия, используемая для сборки, и pu sh, а другая пытается получить и запустить образ, он должен работать.

Кроме того, если вы ищете платформу, которая использует Docker и обеспечивает высокую доступность и сохраняющие состояние приложения в контейнерах. Есть много вариантов, я предлагаю вам взглянуть на Kubernetes (https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/)

Обычно такие платформы высокой доступности состоят из множества стандартизированных узлы (одно и то же ядро, одинаковые версии lib и Docker, одинаковое количество оперативной памяти и доступных процессоров и т. д.) для равномерного распределения контейнерных приложений по узлам ... и также для обеспечения легкого сопровождения (возможно, с использованием Ansible и аналогичных инструментов)

...