Partilhar via


Janelas e contentores

Aplica-se a: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016

Os contêineres são uma tecnologia para empacotar e executar aplicativos Windows e Linux em diversos ambientes locais e na nuvem. Os contêineres fornecem um ambiente leve e isolado que torna os aplicativos mais fáceis de desenvolver, implantar e gerenciar. Os contêineres começam e param rapidamente, tornando-os ideais para aplicativos que precisam se adaptar rapidamente à demanda em constante mudança. A leveza dos contentores também os torna uma ferramenta útil para aumentar a densidade e utilização da sua infraestrutura.

Gráfico mostrando como os contêineres podem ser executados na nuvem ou no local, suportando aplicativos monolíticos ou microsserviços escritos em praticamente qualquer idioma.

O ecossistema de contêineres da Microsoft

A Microsoft disponibiliza muitas ferramentas e plataformas para ajudar a desenvolver e implementar aplicações em contentores:

  • Execute contêineres baseados em Windows ou Linux no Windows 10 para desenvolvimento e teste usando Docker Desktop, que usa a funcionalidade de contêineres integrada ao Windows. Você também pode executar contêineres nativamente no Windows Server.

  • Desenvolva, teste, publique e implante contêineres baseados no Windows usando o suporte de contêiner poderoso no Visual Studio e Visual Studio Code, que incluem suporte para Docker, Docker Compose, Kubernetes, Helm e outras tecnologias úteis.

  • Publique seus aplicativos como imagens de contêiner no DockerHub público para uso de outras pessoas ou em um privado do Registro de Contêiner do Azure para o desenvolvimento e implantação da sua própria organização, enviando e extraindo diretamente do Visual Studio e do Visual Studio Code.

  • Implantar contêineres em escala no Azure ou em outras nuvens:

    • Retire a sua aplicação de um registo de contentores, como o Azure Container Registry, e depois implemente-a e gere em larga escala usando um orquestrador como o Azure Kubernetes Service (AKS).

    • O Azure Kubernetes Service implementa contentores em máquinas virtuais Azure e gere-os em larga escala. Podes operar dezenas, centenas ou até milhares de contentores.

    • As máquinas virtuais Azure executam uma imagem Windows Server personalizada para aplicações baseadas em Windows, ou uma imagem Ubuntu Linux personalizada para aplicações baseadas em Linux.

  • Implemente contentores on-premises usando o Azure Kubernetes Service (AKS) ativado pelo Azure Arc, o motor AKS no Azure Stack Hub, ou o Azure Stack Hub com OpenShift. Também podes configurar o Kubernetes tu próprio no Windows Server. Para mais informações, consulte Kubernetes no Windows. A Microsoft está também a desenvolver suporte para contentores Windows na RedHat OpenShift Container Platform.

Como funcionam os contentores

Um contêiner é um pacote leve e isolado para executar um aplicativo no sistema operacional host. Os contentores funcionam sobre o kernel do sistema operativo anfitrião (que pode ser considerado a canalização enterrada do sistema operativo), como mostrado no diagrama seguinte.

Diagrama de arquitetura mostrando como os contêineres são executados sobre o kernel

Enquanto um contêiner compartilha o kernel do sistema operacional host, o contêiner não obtém acesso irrestrito a ele. Em vez disso, o contêiner obtém uma visão isolada e, em alguns casos, virtualizada do sistema. Por exemplo, um contêiner pode acessar uma versão virtualizada do sistema de arquivos e do registro, mas quaisquer alterações afetam apenas o contêiner e são descartadas quando ele para. Para guardar dados, o contêiner pode montar armazenamento persistente, como um Azure Disk ou um compartilhamento de arquivos, como Azure Files.

Um contentor constrói-se sobre o kernel, mas o kernel não fornece todas as APIs e serviços que uma aplicação precisa para correr. A maioria destas APIs e serviços provém de ficheiros do sistema (bibliotecas) que correm acima do kernel em modo utilizador. Como um contentor está isolado do ambiente de modo utilizador do anfitrião, o contentor necessita da sua própria cópia destes ficheiros do sistema em modo utilizador. Estes ficheiros estão organizados numa imagem conhecida como base image. A imagem base serve como a camada fundamental sobre a qual constróis o teu contentor, fornecendo-lhe serviços do sistema operativo que não são fornecidos pelo kernel.

Contêineres versus máquinas virtuais

Ao contrário de um contentor, uma máquina virtual (VM) executa um sistema operativo completo – incluindo o seu próprio núcleo – como mostrado no diagrama seguinte.

Diagrama de arquitetura mostrando como as VMs executam um sistema operacional completo ao lado do sistema operacional host

Contentores e máquinas virtuais têm cada um as suas utilidades. De facto, muitas implementações de containers utilizam máquinas virtuais como sistema operativo anfitrião em vez de correrem diretamente no hardware, especialmente ao executar containers na cloud.

Para mais informações sobre as semelhanças e diferenças destas tecnologias complementares, veja Containers vs. máquinas virtuais.

Imagens de contêiner

Crias todos os contentores a partir de imagens de contentores. Uma imagem de contêiner é um pacote de arquivos organizados em uma pilha de camadas que reside em sua máquina local ou em um registro de contêiner remoto. Uma imagem de contentor consiste nos ficheiros do sistema operativo em modo utilizador que a sua aplicação precisa para executar. A imagem inclui também os tempos de execução, dependências e quaisquer ficheiros de configuração que a sua aplicação necessite.

A Microsoft oferece várias imagens (chamadas de imagens base) que você pode usar como ponto de partida para criar sua própria imagem de contêiner:

  • Windows - contém o conjunto completo de APIs do Windows e serviços do sistema (menos funções de servidor).
  • Windows Server - contém o conjunto completo de APIs do Windows e serviços do sistema.
  • Windows Server Core - uma imagem menor que contém um subconjunto das APIs do Windows Server, ou seja, o .NET framework completo. Inclui também a maioria, mas não todos os papéis de servidor (por exemplo, o Servidor de Fax não está incluído).
  • Nano Server - a menor imagem do Windows Server e inclui suporte para as APIs do .NET Core e algumas funções de servidor.

As imagens de contêiner são compostas por uma série de camadas. Cada camada contém um conjunto de arquivos que, quando sobrepostos, representam sua imagem de contêiner. Devido à natureza em camadas dos contentores, nem sempre é preciso especificar uma imagem base para construir um "Windows container." Em vez disso, podes direcionar outra imagem que já tenha a estrutura que queres. Por exemplo, a equipe do .NET publica um de imagem do núcleo do .NET que carrega o tempo de execução do núcleo do .NET. Ele evita que os usuários precisem duplicar o processo de instalação do núcleo do .NET – em vez disso, eles podem reutilizar as camadas dessa imagem de contêiner. A imagem principal do .NET em si é construída com base no Nano Server.

Para mais informações, consulte Imagens de Base de Contentores.

Usuários de contêiner

Contentores para programadores

Os contêineres ajudam os desenvolvedores a criar e enviar aplicativos de alta qualidade com mais rapidez. Com contêineres, os desenvolvedores podem criar uma imagem de contêiner que é implantada em segundos, de forma idêntica em todos os ambientes. Os contêineres agem como um mecanismo fácil para compartilhar código entre equipes e inicializar um ambiente de desenvolvimento sem afetar o sistema de arquivos do host.

Os contêineres são portáteis e versáteis, podem executar aplicativos escritos em qualquer idioma e são compatíveis com qualquer máquina que execute o Windows 10, versão 1607 ou posterior, ou Windows Server 2016 ou posterior. Os desenvolvedores podem criar e testar um contêiner localmente em seu laptop ou desktop e, em seguida, implantar essa mesma imagem de contêiner na nuvem privada, nuvem pública ou provedor de serviços da empresa. A agilidade natural dos contêineres suporta padrões modernos de desenvolvimento de aplicativos em ambientes de nuvem virtualizados de grande escala. O benefício mais útil para os desenvolvedores talvez seja a capacidade de isolar seu ambiente para que seu aplicativo sempre obtenha a versão das bibliotecas que você especificar, evitando conflitos com dependências.

Contentores para profissionais de TI

Os contêineres ajudam os administradores a criar uma infraestrutura mais fácil de atualizar e manter e que utiliza mais plenamente os recursos de hardware. Os profissionais de TI podem usar contêineres para fornecer ambientes padronizados para suas equipes de desenvolvimento, controle de qualidade e produção. Usando contêineres, os administradores de sistemas abstraem as diferenças nas instalações do sistema operacional e na infraestrutura subjacente.

Também pode usar o modo interativo dos contentores para executar instâncias conflitantes de uma ferramenta de linha de comandos no mesmo sistema.

Orquestração de contêineres

Os orquestradores são uma peça crítica da infraestrutura ao configurar um ambiente baseado em contêiner. Os orquestradores são essenciais na gestão de aplicações contentorizadas em grande escala. Embora possas gerir manualmente alguns containers usando Docker e Windows, as aplicações frequentemente utilizam cinco, dez ou até centenas de containers, tornando os orquestradores indispensáveis.

Os orquestradores de contentores foram desenvolvidos para ajudar a gerir contentores em escala e em produção. Os orquestradores fornecem funcionalidade para:

Os orquestradores ajudam você a expandir aplicativos em contêineres em escala, fornecendo funcionalidade para:

  • Implantação em escala
  • Agendamento de carga de trabalho
  • Monitorização do estado de saúde
  • Failover quando um nó falha
  • Aumentar ou diminuir a escala
  • Rede
  • Descoberta de serviço
  • Coordenando atualizações de aplicativos
  • Afinidade de nó de cluster

Há muitos orquestradores diferentes que você pode usar com contêineres do Windows; aqui estão as opções que a Microsoft fornece:

Experimente contêineres no Windows

Para começar com containers no Windows Server ou Windows 10, consulte o seguinte artigo:

Para ajuda a decidir quais os serviços Azure adequados para o seu cenário, consulte Azure container services e Escolher que serviços Azure usar para alojar a sua aplicação.

Recursos

Para visualizar recursos para utilização de contentores do Windows Server, consulte os seguintes recursos:

  • Para problemas atuais e atualizações planejadas de funcionalidades, consulte o repositório GitHub Windows Containers .

  • Consulta o blogue: Windows Containers Blog.

  • Para entrar em contato com a equipe de contêineres do Windows Server, envie um email para o grupo Clientes de Contêineres do Windows.