Знакомство с Docker
Администратору Contoso Windows Server необходимо понять, как docker, контейнеры Docker, среды выполнения контейнеров и как они могут работать в Windows Server.
Общие сведения о средах выполнения Docker и контейнеров
Docker Inc. — это компания, которая объединила коллекцию средств, решений и облачных служб с открытым исходным кодом, которые предоставляют общую модель для упаковки (также известного как контейнеризация) кода приложения в стандартизированную единицу разработки программного обеспечения. Этот стандартный модуль, называемый контейнером Docker, представляет собой программное обеспечение на основе полноценной файловой системы, включающей в себя все необходимое для выполнения: код, среду выполнения, системные средства, системные библиотеки и другие компоненты, устанавливаемые на сервере.
Для поддержки контейнера Docker существуют два базовых компонента, которые обычно скрыты или незамечены пользователем, выполняющим контейнер. Эти два компонента — это среда выполнения контейнера и функции ОС для поддержки контейнеров. В Windows Server функция, поддерживающая контейнер Docker, называется "Контейнеры". Эта функция взаимодействует с компонентом, который называется службой вычислений узла (HCS). HCS отвечает за оркестрацию платформы виртуализации на Windows Server и является более низким API, поддерживающим как контейнеры, так и виртуальные машины Hyper-V.
Над функцией ОС, которая планирует контейнеры, является средой выполнения контейнера. Среда выполнения контейнера находится между интерфейсом командной строки, пользовательским интерфейсом или оркестратором контейнеров и базовой функцией ОС. Это задание среды выполнения контейнера для перевода команд из оркестратора пользователей или контейнеров в возможности платформы ОС. Например, при запросе интерфейса командной строки Docker запустить новый контейнер интерфейс командной строки будет взаимодействовать с средой выполнения контейнера, которая, в свою очередь, отправляет команду в ОС таким образом, что она понимает. Среды выполнения контейнеров существуют, поэтому приведенные выше уровни не должны знать, как ОС ожидает получения команд. С точки зрения пользователя это важно, так как разные среды выполнения контейнеров будут иметь различные функции и возможности.
Существует множество различных сред выполнения контейнеров для запуска контейнеров в Windows Server. Наиболее распространенными являются следующие:
- Проект Moby. Moby — это проект с открытым исходным кодом, из которого Docker создает свои коммерческие проекты. В Windows Server Moby — это проект, поддерживаемый сообществом, который использует dockerd в качестве среды выполнения контейнера. Moby идеально подходит для тестирования контейнеров в Windows Server. При установке Moby предоставляет не только среду выполнения контейнеров dockerd, но и интерфейс командной строки для взаимодействия с контейнерами в Windows Server.
Внимание
Dockerd в Windows и Windows Server использует HCSv1. В Linux Moby переключилась на использование контейнера в качестве среды выполнения контейнера. В настоящее время происходит работа по перемещению Moby в контейнерd в Windows, используя более новый и улучшенный интерфейс HCSv2.
ContainerD. ContainerD — это среда выполнения контейнера с открытым кодом и недавно была создана в качестве предпочтительной среды выполнения контейнера для сред Kubernetes. ContainerD можно использовать в рабочих средах и является средой выполнения контейнеров по умолчанию для Windows Server 2022 при запуске в средах Kubernetes. При установке ContainerD не предоставляет интерфейс командной строки для взаимодействия с контейнерами. Вместо этого можно использовать другие clis с открытым кодом, такие как CRICTL или NerdCTL.
Среда выполнения контейнеров Mirantes (MCR). MCR, официально известный как Docker выпуск Enterprise (Docker EE), предоставляет те же функции, что и Docker CE, а также дополнительные функции, созданные специально для корпоративных развертываний. ПРИ использовании Docker Swarm в качестве оркестратора контейнеров рекомендуется использовать MCR. При установке MCR предоставляет среду выполнения контейнера и тот же интерфейс командной строки, что и Docker и Moby.
Примечание.
Для разработки можно использовать другой компонент, называемый классическим приложением Docker для Windows 10 и 11.
Запуск контейнеров в Windows Server
Прежде чем запускать контейнеры в Windows Server, необходимо выяснить, какую среду выполнения контейнеров необходимо использовать в вашей среде. Среда выполнения контейнера будет диктовать процесс установки, который необходимо выполнить. Дополнительные сведения о параметрах в Windows Server и их установке см . в статье о подготовке узла Windows Server для контейнеров.
Внимание
Если вы планируете использовать режим изоляции Hyper-V для контейнеров, вам также потребуется установить роль сервера Hyper-V на сервере узла. Кроме того, если сервер узла сам является виртуальной машиной, перед установкой роли Hyper-V необходимо включить вложенную виртуализацию. Так как Windows 10 и 11 выполняет контейнеры на основе Windows по умолчанию в режиме изоляции Hyper-V, для поддержки этого режима по умолчанию компонент Hyper-V должен быть установлен в среде узла Windows 10 и 11.
Центр Docker
Контейнеры создаются на основе образов контейнеров, которые можно хранить в репозиториях. Репозиторий — это место, где можно создавать, хранить, защищать и совместно использовать образы контейнеров. Docker Hub — это веб-служба библиотеки под управлением Docker, которая позволяет выполнять следующие задачи:
регистрировать и хранить собственные образы Docker в сетевом репозитории, управлять ими и делиться с другими пользователями;
получать доступ к более чем 100 000 образов контейнеров от поставщиков программного обеспечения, проектов с открытым кодом и других членов сообщества;
Реестр контейнеров Майкрософт
Корпорация Майкрософт предоставляет образы контейнеров через реестр контейнеров Майкрософт (MCR) на mcr.microsoft.com. Это официальный источник образов контейнеров, предоставленных корпорацией Майкрософт. Независимо от того, где обнаружены образы контейнеров Майкрософт, источник извлечения mcr.microsoft.com.
Примечание.
Реестр контейнеров Azure — это служба Azure, с помощью которой можно создать собственный репозиторий образов контейнеров. Его можно использовать для хранения образов и управления ими для всех типов развертываний контейнеров.