Pular para o conteúdo

Instalando ContainerD, Nerdctl e WCN n Windows Container

  • por

Ola Pessoal,

Neste post vou mostrar como instalar e preparar uma maquina windows rodar um windows container.
Entretanto, não iremos utilizar o Docker. Nos iremos utilizar um combo com ContainerD, Nerdctl e CNI com windows container networking.

No primeiro momento, você vai pensar, Leandro por que você esta fazendo essa mistura com muitas soluções para poder rodar um container no windows?

Primeiro,  a Microsoft ao poucos esta se desvinculando do Docker para rodar containers e depois que o Docker foi comprado pela Mirantis, a Microsoft começou a foca no containerD para seus produtos.

No presente momento, enquanto estou escrevendo isso em 2023, não foi disponibilidade uma forma oficial de instalar o containerd no Windows como um instalador ou usando alguma fonte de repositório como winget ou chocolatey.
Com isso, decide, criar esse scrip para fazer a instalacao e configuração para sua operação básica.

Nerdctl: Software para gerenciar os container que irão rodar no containerD
WCN (windows container networking): Sofware responsável pela conectividade de rede, conhecido como CNI.

Versões utilizadas para testar o script, que foram utilizadas em 2023:

Nerdctl: 1.4.0
ContainerD: 1.7.2
WCN: 0.3.0
Windows Server: 2022 com atualizações de junho de 2023 instaladas.
PowerShell: 5.1
Powershell Module: HNS


Neste post, irei explicar o que o script faz, e que vai além do que os scritps disponibilizados pela Microsoft e ContainerD não faz.

0- Baixar os script: curl.exe -LO https://raw.githubusercontent.com/leandroscardua/Windows-Containerd/master/install_containerd.ps1 , para executar roda o script com esse comando: .\install_containerd.ps1

1- O script abaixo, verifica as ultimas versões disponíveis, do nerdctl, containerd e windows container networking, se você quiser você pode selecionar uma versão especifica para cada um deste componentes.

2- Verificar se a função container esta instalada, se não, a execução do script sera interrompida, sendo necessário manualmente rodar o comando: Install-WindowsFeature -Name Containers

3- O script ira baixar a versao do containerD e ire executa algumas funcoes para instalar e configurar o containerD corretamente, isso vai executar essa mesma funcoes para o Nerdctl e windows container networking.

4- Para parte de rede, como temos que escolher um CNI compatível com windows, vamos utilizar o windows container networking, que e compatível com nerdctl e containerD, isso vai baixar um module me Powershell para poder adicionar um rede virtual dentro do windows, para criar um adaptador para funcionar em modo NAT, no momento o único suportado.

5- Com isso, se ambiente esta pronto para utilizar o containerD, voce ja pode baixar as imagens rodando por exemplo: ./nerdctl.exe pull mcr.microsoft.com/windows/nanoserver:ltsc2022 e para criar o container com a imagem que voce criou conectado na rede virtual criada anteriormente rode o comando: ./nerdctl.exe run -it –net nat mcr.microsoft.com/windows/nanoserver:ltsc2022

Fica a vontade, para usar o script abaixo e se tiver duvidas ou sugestões, pode abrir um issue no github.

[embedGitHubContent owner=”leandroscardua” repo=”Windows-Containerd” path=”install_containerd.ps1″]

 

 


Referencias:

– https://learn.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment?tabs=containerd#install-the-container-runtime
– https://github.com/containerd/containerd/blob/main/docs/getting-started.md#installing-containerd-on-windows
– https://blog.devgenius.io/gentle-containerd-on-windows-guide-for-you-50d4a46daccf
– https://lippertmarkus.com/2022/01/22/containerd-ctr-windows/

Deixe uma resposta