Sobre contêineres do Windows

Imagine uma cozinha. Nesta sala única, tudo o que você precisa para fazer uma refeição: o forno, a redimensionamento, o recpetor e assim por diante. Este é o nosso contêiner.

Uma ilustração de uma cozinha totalmente fornecida com um papel de parede amarelo dentro de uma caixa preta.

Agora, imagine colocar esta cozinha dentro de um edifício tão facilmente como deslizar um livro para um bookshelf. Como tudo que a cozinha precisa funcionar já está lá, tudo o que precisamos para começar a culinária é conectar a eletricidade e o encanamento.

Uma construção Apartment composta de duas pilhas de caixas pretas. Quatro dessas caixas são as mesmas caixas amarelas usadas no exemplo de cozinha e estão em locais aleatórios durante a construção, enquanto o restante são salas de uso multicoloridos ou ficam vazias e acinzentadas.

Por que parar lá? Você pode personalizar sua compilação da maneira que desejar; Preencha-o com vários tipos de salas, preencha-o com salas idênticas ou uma combinação dos dois.

Os contêineres atuam como esta sala executando um aplicativo da mesma forma que gostaríamos em nossa cozinha. Um contêiner coloca um aplicativo e tudo o que o aplicativo precisa para ser executado em sua própria caixa isolada. Como resultado, o aplicativo isolado não tem conhecimento de nenhum outro aplicativo ou processo existente fora do contêiner. Como o contêiner tem tudo o que o aplicativo precisa para ser executado, o contêiner pode ser movido em qualquer lugar, usando apenas os recursos que o host provisiona sem tocar em recursos provisionados para outros contêineres.

O vídeo a seguir informará mais sobre o que os contêineres do Windows podem fazer por você, bem como a parceria da Microsoft com o Docker ajuda a criar um ambiente sem interrupções para o desenvolvimento de contêiner de código-fonte aberto:

Conceitos básicos do contêiner

Vamos saber alguns termos que você encontrará úteis ao começar a trabalhar com contêineres do Windows:

  • Host de contêiner: um sistema de computador físico ou virtual configurado com o recurso de contêiner do Windows. O host de contêiner executará um ou mais contêineres do Windows.
  • Área restrita: a camada que captura todas as alterações feitas no contêiner enquanto ele está em execução (como modificações do sistema de arquivos, modificações do registro ou instalações de software).
  • Imagem base: a primeira camada nas camadas de uma imagem de um contêiner que fornece o ambiente do sistema operacional do contêiner. Uma imagem base não pode ser modificada.
  • Imagem do contêiner: um modelo de instruções somente leitura para a criação de um contêiner. As imagens podem ser baseadas em um ambiente de sistema operacional básico e inalterável, mas também podem ser criadas na área restrita de um contêiner modificado. Essas imagens modificadas importam as alterações na parte superior da camada da imagem base, e essas camadas podem ser copiadas e reaplicadas a outras imagens base para criar uma nova imagem com essas mesmas alterações.
  • Repositório de contêiner: o repositório local que armazena sua imagem de contêiner e suas dependências toda vez que você cria uma nova imagem. Você pode reutilizar imagens armazenadas quantas vezes quiser no host do contêiner. Você também pode armazenar as imagens de contêiner em um registro público ou privado, como o Hub Docker, para que elas possam ser usadas em muitos hosts de contêiner diferentes.
  • Orquestrador de contêiner: um processo que automatiza e gerencia uma grande quantidade de contêineres e como eles interagem uns com os outros. Para saber mais, consulte sobre os orquestradores do contêiner do Windows.
  • Docker: um processo automatizado que empacota e entrega imagens de contêiner. Para saber mais, consulte a visão geral do Docker, mecanismo do Docker no Windows ou acesse o website do Docker.

Um fluxograma que mostra como os contêineres são criados. As imagens de aplicativo e base são usadas para criar uma área restrita e uma nova imagem de aplicativo, que são colocados em camadas na parte superior da imagem base para criar um novo contêiner.

Alguém familiarizado com máquinas virtuais pode pensar que os contêineres e máquinas virtuais parecem semelhantes. Um contêiner executa um sistema operacional, tem um sistema de arquivos e pode ser acessado em uma rede muito semelhante a um sistema de computador físico ou virtual. No entanto, a tecnologia e os conceitos por trás dos contêineres são muito diferentes das máquinas virtuais. Para saber mais sobre esses conceitos, leia a postagem de blog da Mark Russinovich que explica as diferenças em mais detalhes.

Tipos de contêiner do Windows

Outra coisa que você deve saber é que há dois tipos de contêiner diferentes, também conhecidos como Runtimes.

Os contêineres do Windows Server fornecem isolamento de aplicativo por meio de tecnologia de isolamento de namespace e processo, que é por isso que esses contêineres também são chamados de contêineres de processo isolado. Um Contêiner do Windows Server compartilha um kernel com o host do contêiner e com todos os contêineres em execução no host. Esses contêineres de processo isolado não fornecem um limite de segurança hostil e não devem ser usados para isolar o código não confiável. Devido ao espaço de kernel compartilhado, esses contêineres exigem a mesma versão e configuração de kernel.

O isolamento do Hyper-V expande o isolamento fornecido pelos contêineres do Windows Server executando cada contêiner em uma máquina virtual altamente otimizada. Nesta configuração, o host de contêiner não compartilha o kernel com outros contêineres no mesmo host. Esses contêineres são projetados para hospedagem multilocatário hostil com as mesmas garantias de segurança de uma máquina virtual. Como esses contêineres não compartilham o kernel com o host ou outros recipientes no host, eles podem executar kernels com versões e configurações diferentes (dentro de versões com suporte). Por exemplo, todos os recipientes do Windows no Windows 10 usam o isolamento do Hyper-V para usar a versão e a configuração do kernel do Windows Server.

Executar um contêiner no Windows com ou sem o isolamento do Hyper-V é uma decisão de tempo de execução. Inicialmente, você pode criar o contêiner com o isolamento do Hyper-V e, posteriormente, no tempo de execução, escolha executá-lo como um contêiner do Windows Server em vez disso.

Usuários do contêiner

Contêineres para desenvolvedores

Os contêineres ajudam os desenvolvedores a criar e enviar aplicativos de alta qualidade mais rapidamente. Os desenvolvedores podem criar uma imagem do Docker que será implantada de maneira idêntica em todos os ambientes em segundos. Há um ecossistema maciço e crescente de aplicativos empacotados em contêineres do Docker. DockerHub, um registro de aplicativo com contêiner público mantido pelo Docker, publicou mais de 180.000 aplicativos em seu repositório público da Comunidade, e esse número ainda está crescendo.

Quando um desenvolvedor containerizes um app, somente o aplicativo e os componentes que ele precisa executar são combinados em uma imagem. Os contêineres são então criados usando essa imagem conforme necessário. Você também pode usar uma imagem como uma linha de base para criar uma outra, tornando ainda mais rápida a criação de imagens. Vários contêineres podem compartilhar a mesma imagem, o que significa que os contêineres são inicializados rapidamente e usam menos recursos. Por exemplo, um desenvolvedor pode usar recipientes para girar componentes de aplicativos leves e portáteis, também conhecidos como microserviços, para aplicativos distribuídos e dimensionar rapidamente cada serviço separadamente.

Os contêineres são portáteis e versátil, podem ser gravados em qualquer idioma e são compatíveis com qualquer computador executando o Windows Server 2016. Os desenvolvedores podem criar e testar um contêiner localmente no laptop ou na área de trabalho e, em seguida, implantar essa mesma imagem de contêiner para a nuvem privada, a nuvem pública ou o provedor de serviços de sua empresa. A agilidade natural dos contêineres oferece suporte a padrões de desenvolvimento de aplicativos modernos em ambientes de nuvem virtualizados de grande escala.

Contêineres para profissionais de ti

Os contêineres ajudam os administradores a criar uma infra-estrutura mais fácil de atualizar e manter. Os profissionais de ti podem usar contêineres para fornecer ambientes padronizados para suas equipes de desenvolvimento, QA e produção. Eles não precisam mais se preocupar com procedimentos complexos de instalação e configuração. Usando contêineres, os administradores de sistemas abstrairam diferenças nas instalações do sistema operacional e na infraestrutura subjacente.

Apresentação com vídeo do contêiners 101

A apresentação de vídeo a seguir oferece uma visão geral mais profunda do histórico e da implementação dos recipientes do Windows.

Experimentar recipientes do Windows Server

Para começar com contêineres no Windows Server ou no Windows 10, consulte introdução: configurar seu ambiente para contêineres.