Windows Server 2019: novidades para Docker

Olá pessoal, neste post iremos observar algumas novidades para containers Docker no Windows Server 2019, coisas que antes não eram possíveis no Windows Server 2016.

Mesmo com containers funcionais no Windows, existiam algumas pendências se comparados aos containers executados no Linux, o Windows Server 2019 vem para acabar com essas pendências e consolidar a possibilidade de rodar containers no Windows sem medo!

#Novidade1

Agora as portas publicadas nos containers estão acessíveis via localhost (127.0.0.1)

Os containers do Windows permitem que você publique portas da maneira usual (Igual ao Linux), portanto, quando o tráfego de rede entra em seu host em uma porta específica, o Docker o direciona para o container especificado. Mas no Windows Server 2016 você só pode acessar a porta externamente, não usando o localhost no host.

O Docker Desktop no Windows 10 tem uma correção para isso há algum tempo, portanto, você pode usar o localhost na área de trabalho.

Agora no Windows Server 2019, a pilha de rede no sistema operacional foi atualizada para oferecer suporte ao loopback.

Isso é muito útil se você desenvolver em uma VM ou se estiver usando o Docker em seu processo de Integração Continua. No Windows Server 2016, você precisava obter o endereço IP do container para acessá-lo a partir do host, mas agora é possível usar a porta publicada diretamente do localhost.

 

#Novidade2

A API do Docker está disponível por meio de pipes nomeados

Existem muitos cenários em que você deseja executar o software em um container que tenha acesso à API do Docker no host em que ele está sendo executado. A Integração Continua (IC) é um ótimo exemplo. Se você usa compilações de vários estágios para seus aplicativos, pode compilar a partir da origem dentro de contêineres e não precisa configurar um servidor de IC com várias ferramentas.

Agora no Windows Server 2019, você pode montar o pipe nomeado para a API do Docker como um volume. O pipe é o endpoint padrão para o Docker CLI para acessar a API do Docker em execução na mesma máquina e também para containers que acessam a API do Docker na máquina em que estão sendo executados:

#Novidade3

A rede Ingress é suportada no modo Swarm

O modo Docker Swarm é um orquestrador de conteiner muito simples, mas extremamente poderoso, você une vários servidores executando o Docker em um único grupo e gerencia sua carga de trabalho neste grupo de containers.

O Windows Server 2019 provavelmente também será a primeira versão a oferecer suporte a nós do Kubernetes com nós do Windows, mas isto ainda esta por se confirmar.

O Swarm é um ótimo recurso, mas não era suportado para containers do Windows no Server 2016. Você precisava usar a publicação no modo de host , o que significa que só é possível executar um container por servidor se quiser ter portas acessíveis publicamente. Agora o Windows Server 2019 oferece suporte ao modo Ingress do Docker, para que você possa executar seus containers com o nível de serviço necessário e ampliar ou reduzir o tamanho do grupo de containers, sabendo que o Docker continuará direcionando e equilibrando a carga no tráfego.

 

#Novidade4

Descoberta de serviços com VIP

Um segundo aprimoramento para o modo Docker Swarm no Windows Server 2019. O Swarm fornece descoberta de serviço por meio do DNS, para que os containers possam se referir uns aos outros pelo nome do serviço e o Docker resolve isso para um endereço IP do container. É uma maneira muito simples de conectar serviços, usando a tecnologia existente para que ela seja transparente para os aplicativos que estão sendo executados em containers.

Existem dois modos para a descoberta de serviços: VIP e DNSRR

  • O VIP usa um endereço IP virtual, quando um container faz uma consulta DNS, ele obtém um único endereço IP na resposta, que é um endereço virtual. A camada de rede realmente encaminha um dos containers que executam réplicas de serviço.
  • O DNSRR é round-robin de DNS, onde a resposta do DNS contém uma lista de todos os endereços IPs dos containers, em uma ordem aleatória para fornecer balanceamento de carga.

O VIP é a melhor opção porque não causa problemas para os clientes que armazenam respostas DNS em cache. Se os containers forem substituídos no serviço, o endereço IP virtual permanecerá o mesmo e as solicitações do cliente sempre serão roteadas para um container ativo. O DNSRR pode causar problemas se os clientes armazenarem em cache a resposta, porque a resposta é o endereço IP de um único container e, quando esse container é substituído, o cliente não pode acessar o serviço, até que os caches DNS expirem e ele receba uma nova resposta.

O Windows Server 2016 só oferece suporte à descoberta de serviço do DNSRR, mas o 2019 também oferece suporte ao VIP. Juntamente com a rede de ingresso, isso significa que você pode executar serviços altamente disponíveis, altamente escaláveis ​​e resilientes no modo swarm.

 

#Novidade5

Montagens de volume possuem caminhos de diretório utilizáveis

Os volumes do Docker são como você separa o armazenamento do ciclo de vida de seus containers. Você anexa um volume a um container e ele aparece como um diretório no sistema de arquivos do container. Seu aplicativo grava em C:\temp (ou qualquer caminho que você montar) e os dados são armazenados no volume, que pode ser armazenado no host do Docker, uma unidade de armazenamento separada no datacenter ou um serviço de armazenamento em nuvem por exemplo.

A montagem dentro do container deve ser transparente para o aplicativo, mas no Windows Server 2016, a implementação usou diretórios de links simbólicos e isso causou alguns problemas, corrigido agora no Windows Server 2019.

 

#Novidade6

Montagens de volume podem sobrescrever diretórios existentes

O Windows Server 2016 tinha algumas outras peculiaridades de volume. Uma delas é que você não poderia usar um diretório de destino para uma montagem de volume se esse diretório já existisse na imagem do Docker.

Isso é problemático para muitos aplicativos em que há um diretório de configuração que é fornecido com um arquivo de configuração padrão na imagem. No Linux, você pode executar o container e sobrescrever o diretório de configuração com o conteúdo do seu volume. No Windows 2016 você não pode fazer isso, então você teria que escrever um Dockerfile que empacotasse sua configuração customizada.

Esta limitação desapareceu no Windows Server 2019. Agora você pode montar um volume em um diretório existente e o conteúdo é substituído, portanto, o container vê o conteúdo do volume e não o conteúdo da imagem.

 

Este era o recado para hoje, várias melhorias vindo no Windows Server 2019, abraços e até a próxima!

 

 

Post original em Inglês (Fonte): https://blog.sixeyed.com/what-you-can-do-with-docker-in-windows-server-2019-that-you-couldnt-do-in-windows-server-2016/

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: