У меня есть сервер Linux с 16 ГБ оперативной памяти с установленным хостом докеров. Я хотел бы развернуть на нем контейнер Windows Server. Является ли это возможным? Кто-нибудь просто попробовал это решение?
Linux-машина с контейнером для развертывания docker
Ответ 1
В теории (исходный ответ Oct 2015):
На хосте Linux нет "контейнера Windows".
И контейнер Linux не будет запускаться непосредственно на сервере Windows, поскольку полагается на системные вызовы на ядро Linux.
Вы, безусловно, можете запускать эти контейнеры Linux на любой машине Windows через виртуальную машину.
Вот что панель инструментов докеров будет установлена .
В ближайшее время будет поддержка докеров в Windows, но это будет для контейнера Windows, а не для контейнеров Linux.
Обновление 2017: да, LinuxKit позволяет запускать контейнер linux через оболочку изоляции Hyper-V на платформе Windows через минимальную Linux OS построена из linuxkit.
Это все та же идея: linux работает внутри виртуальной машины в Windows.
Это не сервер Linux, развернутый на сервере Windows: он развернут только на сервере Linux, работающем в виртуальной машине в Windows.
Фактически... (обновление, декабрь 2016 г.)
См. " Linux и Windows, живущие вместе, полный хаос! (OK, Kubernetes 1.5)"
Kubernetes 1.5 включает альфа-поддержку как контейнеров Windows Server, так и общей модели ядра, подобной Docker, и Hyper-V Containers, одноядерной модели, которая обеспечивает лучшую изоляцию для сред с несколькими арендаторами за счет большей латентности).
Конечным результатом является возможность создания единого кластера Kubernetes, который включает в себя не только узлы Linux, на которых запущены контейнеры Linux, либо узлы Windows, работающие под контейнерами Windows, но оба они бок о бок, для действительно гибридного опыта.
Например, одна служба может иметь POD с использованием контейнеров Windows Server и других POD с использованием контейнеров Linux.
Но:
Несмотря на то, что он выглядит полностью функциональным, в этом раннем выпуске есть некоторые ограничения, в том числе:
- Мастер Kubernetes должен все еще работать на Linux из-за зависимостей в том, как написано. Его можно переносить в Windows, но на данный момент команда чувствует себя лучше, чтобы сосредоточить свои усилия на клиентских компонентах.
- Не существует встроенной поддержки сетевых оверлей для контейнеров в окнах, поэтому сетевое взаимодействие ограничено L3. (Существуют и другие решения, но они не доступны.)
Однако Kubernetes Windows SIG работает с Microsoft для решения этих проблем, и они надеются добиться прогресса в выпуске Kubernetes 1.6 в начале следующего года.- Сеть между контейнерами Windows сложнее, потому что каждый контейнер получает свое собственное пространство имен в сети, поэтому рекомендуется, чтобы вы использовали контейнеры с одним контейнером на данный момент.
- Приложения, запущенные в контейнерах Windows Server, могут работать на любом языке, поддерживаемом Windows. Вы можете запускать приложения .NET в контейнерах Linux, но только если они написаны в .NET Core. Ядро .NET также поддерживается операционной системой Nano Server, которая может быть развернута в контейнерах Windows Server.