Docker Контейнер против виртуальной машины - PullRequest
0 голосов
/ 06 апреля 2020

Я использую docker рабочий стол на windows 10. Я загрузил образ для windows серверное ядро ​​1909.

, а затем создал два контейнера из одного изображения.

Docker запустите -it mcr.microsoft.com/windows/servercore:1909 powershell.exe

, когда я запустил sysinfo на обоих, он дал мне другое имя хоста для обеих ОС.

как мне видите что ядро ​​расшарено? потому что я вижу, что это две разные виртуальные машины, которые ничем не отличаются от виртуальной машины Hyper-V основной ОС.

Я, хотя контейнер docker использует общее ядро, но не вижу под ней ту же ОС?

есть идеи?

1 Ответ

1 голос
/ 06 апреля 2020

Хорошо, я тоже получил ответ. В windows существует концепция уровня изоляции hyper-v для контейнеров. поэтому, если хост не той же версии, что и контейнер, вы получите то, что вы называете изоляцией Hyper-V, которая, по сути, не является изоляцией процесса, скорее это виртуальная машина, похожая на традиционную вещь. нет общего ядра.

Истинная концепция контейнера, которая фактически является общим ядром, возможна только на windows хосте сервера и при использовании версии контейнера, которая также является такой же.

https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility?tabs=windows-server-1909%2Cwindows-10-1809

...