Относно контейнерите на Windows Microsoft Docs
В тази статия
Какво представляват контейнерите?
Контейнерите са начин да поставите приложение в собствена изолирана „кутия“. Приложението в контейнер не познава други приложения или процеси, хоствани извън кутията. Всичко, от което приложението се нуждае, за да работи успешно, също е в този контейнер. Където и да се премести контейнерът, приложението винаги ще работи, тъй като ще получи всичко необходимо за работа.
Представете си кухня. Тук поставяме всички уреди и мебели, тенджери и тигани, перилен препарат и кърпи. Това е нашият контейнер.
Сега ще вземем този контейнер и ще го поставим във всеки апартамент, докато кухнята няма да се промени по никакъв начин. Всичко, което трябва да направим, е да свържем електричество и вода към него и след това да започнем да готвим (тъй като имаме всички необходими уреди!).
Контейнерите са подобни на такава кухня. Може да има различни видове стаи, както и много стаи от един и същи тип. Основното тук е контейнерите да съдържат всичко необходимо за приложението.
Вижте кратък преглед по-долу:
Как работи контейнер
Контейнерите са контролирано от ресурсите, изолирано и преносимо време за изпълнение, което работи на хост машина или виртуална машина. Приложенията или процесите, които се изпълняват в контейнер, идват с всички необходими компоненти и конфигурационни файлове; той осигуряваше илюзията, че няма процеси, изпълнявани извън контейнера.
Контейнерният възел предоставя набор от ресурси и контейнерът ще използва само тях. Контейнерът смята, че не съществуват други ресурси, които се предоставят, и следователно контейнерът няма ресурси за докосване, които клиентът може да инициализирасъседен контейнер.
Следните концепции ще бъдат полезни, когато създавате и работите с контейнери на Windows.
Хост на контейнер. Физическа или виртуална машина, конфигурирана да работи с контейнери на Windows. Хостът на контейнер изпълнява един или повече Windows контейнери.
Изображение на контейнер. Когато се правят промени във файловата система или регистъра на контейнера (например при инсталиране на софтуер), те се поставят в пясъчна среда. В много случаи може да искате да регистрирате това състояние, за да приложите вашите промени, когато създавате нови контейнери. Това е същността на изображението: след като контейнерът спре да работи, можете или да деактивирате пясъчника, или да го конвертирате в ново изображение на контейнер. Да кажем, например, че сте разположили контейнер върху изображение на Windows Server Core. След това инсталирате MySQL в този контейнер. Създаването на ново изображение въз основа на този контейнер ще бъде подобно на внедряването му. Това изображение ще съдържа само направените промени (MySQL) и ще продължи да работи като слой върху изображението на операционната система на контейнера.
Сандбокс. След стартиране на контейнер, всички операции по запис (промени във файловата система и системния регистър или софтуерни инсталации) се регистрират на ниво сандбокс.
Образ на OS контейнер. Контейнерите се разполагат от изображения. Изображението на операционната система на контейнера е първото от възможен набор от слоеве на изображението, които съставляват контейнер. Това изображение представлява средата на операционната система. Изображението на операционната система на контейнера не може да се променя.
Хранилище на контейнери. Всеки път, когато създавате изображение на контейнер, изображението и неговите зависимости се съхраняват в локално хранилище. Тези изображения могат да се използват многократнона хоста на контейнера. Изображенията на контейнери могат също да се съхраняват в публичен или частен регистър (като Docker Hub) за използване на много други хостове на контейнери.
За всеки, който е работил с виртуални машини, контейнерите може да звучат познато. Контейнерът работи с операционна система и съдържа файлова система и може да бъде достъпен през мрежата, подобно на физически или виртуален компютър. В същото време контейнерите и виртуалните машини имат напълно различни технологии и принципи на работа.
Марк Русинович, гуру на Microsoft Azure, написа отлична публикация в блога, която описва подробно разликите.
Типове контейнери на Windows
Контейнерите на Windows са разделени на два типа (има две изпълнения).
Контейнери на Windows Server - Осигурява изолация на приложението чрез изолиране на процес и пространство от имена. Контейнерът на Windows Server споделя ядрото с хоста на контейнера и всички други контейнери на този хост. Тези контейнери не осигуряват защита от враждебни среди, така че не трябва да се използват за изолиране на ненадежден код. Поради споделеното пространство на ядрото, тези контейнери изискват една и съща версия и конфигурация на ядрото.
Изолация на Hyper-V - Предлага повече изолация от контейнерите на Windows Server, тъй като всеки контейнер работи във високо оптимизирана виртуална машина. В тази конфигурация ядрото на хоста на контейнера не се споделя с други контейнери на същия хост. Тези контейнери са проектирани за сурови среди с множество клиенти и осигуряват ниво на сигурност, подобно на това на виртуална машина. Тъй като тези контейнери не използват едно и също ядро,като възел или други контейнери във възел, те могат да изпълняват ядра с различни версии и конфигурации (в поддържаните версии). Например, всички Windows контейнери в Windows 10 използват Hyper-V изолация, за да наложат версията и конфигурацията на ядрото на Windows Server.
Решението за стартиране на контейнер на Windows със или без Hyper-V изолация се взема по време на изпълнение. Първоначално можете да създадете контейнер с Hyper-V изолация и след това да го стартирате като контейнер на Windows Server по време на изпълнение.
Какво е Docker?
Когато четете за контейнери, неизбежно ще чуете за Docker. Docker е рамка за изграждане и доставяне на пакети с изображения на контейнери. Този автоматичен процес създава изображения (т.е. шаблони), които след това могат да се изпълняват навсякъде - на място, в облака или на персонален компютър - като контейнер.
Контейнерите на Windows Server, както всеки друг, могат да се управляват с помощта на Docker.
Контейнери за разработчици
Когато пакетирате приложение, изображението съдържа само самото приложение и компонентите, необходими за стартирането му. Ако е необходимо, въз основа на това изображение се създават контейнери. Можете също така да създадете изображение от друго изображение, което допълнително ускорява вашия работен процес. Няколко контейнера могат да използват едно и също изображение, което ще ускори стартирането им и ще намали количеството ресурси, необходими за това. Например, контейнерите могат да се използват за внедряване на леки и преносими компоненти на приложения (микроуслуги) за разпределени приложения, както и за бързо мащабиране на всяка такава услуга поотделно.
Тъй като контейнерът съдържа всичко необходимо за стартиране на приложението, той е много преносим и може да работи на всеки компютър с Windows Server2016. Можете да изградите и тествате контейнер локално и след това да разположите това изображение на контейнер в сървъра на вашия доставчик на услуги или в частния или публичен облак на вашата компания. Адаптивността на контейнерите ви позволява да използвате съвременни модели за разработка на приложения в широкомащабни, виртуализирани и облачни среди.
С контейнерите разработчиците могат да създадат приложение на всеки език. Тези напълно преносими приложения могат да се изпълняват навсякъде (лаптоп, настолен компютър, сървър, частен и обществен облак или доставчик на услуги), без да е необходимо да променяте кода.
Контейнерите помагат на разработчиците да създават и доставят висококачествени приложения по-бързо.
Контейнери за IT специалисти
Чрез използването на контейнери стандартизираните среди са достъпни за екипите за разработка и контрол на качеството, както и за технологичния отдел. Следователно тези ИТ специалисти не трябва да преминават през сложни стъпки за инсталиране и конфигуриране. Когато използват контейнери, системните администратори трябва да са наясно с разликите в инсталираните операционни системи и основните инфраструктури.
С контейнерите администраторите могат да създадат инфраструктура, която е по-лесна за актуализиране и поддръжка.
Контейнерни оркестратори
Поради малкия си размер и ориентирано към приложението естество, контейнерите са идеални за гъвкави среди за доставка и базирани на микросервизи архитектури. Въпреки това, когато използвате контейнери и микроуслуги, можете да инжектирате стотици и хиляди компоненти във вашата среда. Можете ръчно да управлявате десетки виртуални машини и физически сървъри, но няма начин да управлявате контейнерна среда в индустриален мащаб без инструменти.автоматизация. Автоматизирането и управлението на голям брой контейнери и техните взаимодействия е известно като оркестрация.
Стандартната дефиниция на оркестрацията включва следните задачи.
Azure предлага два оркестратора на контейнери: Azure Container Service (AKS) и Service Fabric.
Azure Container Service (AKS) улеснява създаването, конфигурирането и управлението на клъстери от виртуални машини, които са осигурени за изпълнение на приложения в контейнери. По този начин можете да приложите съществуващи умения или да се възползвате от изобилието от информация, предоставена от общността, за да внедрите и управлявате контейнеризирани приложения в Microsoft Azure. С AKS можете да се възползвате от предимствата на корпоративния клас на Azure, като същевременно запазвате възможността за пренасяне на приложения през Kubernetes и формата на изображение на Docker.
Azure Service Fabric е платформа за разпределени системи, която улеснява пакетирането, внедряването и управлението на стабилни, мащабируеми микроуслуги и контейнери. Service Fabric преодолява значителни предизвикателства при разработването и управлението на облачни приложения. С това решение разработчиците и администраторите могат да избегнат сложни инфраструктурни проблеми и да се съсредоточат върху критични за мисията, изискващи ресурси задачи, които са мащабируеми, надеждни и управляеми. Service Fabric е платформа от следващо поколение за изграждане и управление на базирани на облак приложения от Tier 1 контейнери от корпоративен клас.