Explorar o Docker

Concluído

O administrador do Windows Server na Contoso precisa compreender o Docker, os contêineres dele e como eles são executados no Windows Server.

Visão geral do Docker e dos runtimes de contêiner

A Docker Inc. é uma empresa que reuniu uma coleção de ferramentas de código aberto, soluções e serviços baseados em nuvem que fornecem um modelo comum para o empacotamento de códigos de aplicativo (também conhecido como conteinerização) em uma unidade padronizada para desenvolvimento de software. Essa unidade padronizada, chamada de contêiner do Docker, é o software encapsulado em um sistema de arquivos completo que inclui tudo o que precisa para ser executado: código, runtime, ferramentas do sistema, bibliotecas do sistema e qualquer item que você possa instalar em um servidor.

Há dois componentes subjacentes importantes para dar suporte a um contêiner do Docker, e eles geralmente estão ocultos ou passam despercebidos pelo usuário que executa um contêiner. Eles consistem no runtime de contêiner e nos recursos do sistema operacional que dão suporte aos contêineres. No Windows Server, o recurso que dá suporte ao contêiner do Docker é chamado simplesmente de "Contêineres". Esse recurso interage com um componente chamado HCS (Serviço de Computação de Host). O HCS é responsável por orquestrar a plataforma de virtualização no Windows Server e é a API inferior que dá suporte a contêineres e VMs do Hyper-V.

Acima do recurso do sistema operacional que agenda os contêineres, há um runtime de contêiner. Um runtime de contêiner fica entre a CLI, a IU ou o orquestrador de contêiner e o recurso de sistema operacional subjacente. É tarefa do runtime de contêiner converter os comandos do usuário ou do orquestrador de contêiner nos recursos da plataforma do sistema operacional. Por exemplo, ao solicitar à CLI do Docker a execução de um novo contêiner, ela interage com o runtime de contêiner, que, por sua vez, envia o comando ao sistema operacional de maneira compreensível. Os runtimes de contêiner existem para que as camadas acima não precisem saber como o sistema operacional espera receber comandos. Do ponto de vista de um usuário, isso é importante porque diferentes runtimes de contêiner terão recursos e funcionalidades diferentes.

Captura de tela da descrição da IU gerada automaticamente.

Há muitos runtimes de contêiner diferentes disponíveis para executar contêineres no Windows Server. Os mais comuns são os seguintes:

  • Projeto Moby. O Moby é o projeto de código aberto com base no qual o Docker cria os próprios projetos comerciais. No Windows Server, ele é um projeto com suporte da comunidade que utiliza o dockerd como o runtime de contêiner. O Moby é ideal para testar contêineres no Windows Server. Quando instalado, ele fornece não somente o runtime de contêiner do dockerd, mas também a CLI para interagir com contêineres no Windows Server.

Cuidado

O Docker no Windows e no Windows Server usa HSv 1. No Linux, o Moby mudou para usar o ContainerD como o runtime de contêiner. Atualmente, há um trabalho acontecendo para mover o Moby para o ContainerD no Windows, a fim de permitir a utilização da nova interface aprimorada do HCSv2.

  • ContainerD. O ContainerD é um runtime de contêiner de código aberto que foi recentemente estabelecido como o runtime de contêiner preferencial para ambientes do Kubernetes. Ele pode ser usado em ambientes de produção e é o runtime de contêiner padrão para o Windows Server 2022 em execuções nos ambientes do Kubernetes. Quando instalado, o ContainerD não fornece uma CLI para a interação com contêineres. Outras CLIs de código aberto, como CRICTL ou NerdCTL, podem ser usadas.

  • MCR (Mirantes Container Runtime). O MCR, formalmente conhecido como Docker EE (Enterprise Edition), fornece a mesma funcionalidade do Docker CE, além de recursos extras criados especificamente para implantações corporativas. Ele é recomendado ao usar o Docker Swarm como orquestrador de contêiner. Quando instalado, o MCR fornece o runtime de contêiner e a mesma experiência de CLI que o Docker e o Moby.

Observação

Outro componente chamado Docker Desktop para Windows pode ser usado no Windows 10 e 11 para fins de desenvolvimento.

Executar contêineres no Windows Server

Antes de executar contêineres no Windows Server, é necessário descobrir qual runtime de contêiner você deseja usar no ambiente. O runtime de contêiner ditará o processo de instalação que deve ser seguido. Para saber mais sobre as opções do Windows Server e como instalar cada uma delas, confira Como preparar o host do Windows Server para contêineres.

Importante

Para usar o modo de isolamento do Hyper-V em seus contêineres, instale a função de servidor do Hyper-V no servidor host. Além disso, se o próprio servidor host for uma VM, você precisará habilitar a virtualização aninhada antes de instalar a função do Hyper-V. Como o Windows 10 e 11 executam contêineres baseados no Windows por padrão no modo de isolamento do Hyper-V, para dar suporte a esse modo padrão, o recurso do Hyper-V deve ser instalado no ambiente de host do Windows 10 e 11.

Docker Hub

Os contêineres são criados em imagens de contêiner, que podem ser armazenadas em repositórios. Os repositórios atuam como um local onde você pode criar, armazenar, proteger e compartilhar imagens de contêiner. O Docker Hub é um serviço de biblioteca online baseado na Web, gerenciado pelo Docker, no qual você pode:

  • Registrar, armazenar e gerenciar suas próprias imagens do Docker em um repositório online e compartilhá-las com outras pessoas.

  • Acessar mais de 100.000 imagens de contêiner de fornecedores de software, projetos open-source e outros membros da comunidade.

Registro de Contêiner da Microsoft

A Microsoft fornece imagens de contêiner por meio do MCR (Registro de Contêiner da Microsoft) em mcr.microsoft.com. O MCR é a fonte oficial de imagens de contêiner fornecidas pela Microsoft. Independentemente de onde as imagens de contêiner da Microsoft são descobertas, a fonte de extração é mcr.microsoft.com.

Observação

O Registro de Contêiner do Azure é um serviço do Azure que você pode usar para criar seu próprio repositório de imagens de contêiner. Você pode usá-lo para criar, armazenar e gerenciar imagens para todos os tipos de implantações de contêiner.