Containers – Windows e PowerShell

By | 16 de novembro de 2015
Print Friendly, PDF & Email

Você pode usar containers no Windows Server 2016 ou no Linux, dentro da sua empresa ou na nuvem.
Neste artigo eu vou demonstrar os primeiros passos no gerenciamento de containers de modo que essa experiencia traga mais base de conhecimento para os próximos artigos.

Sim eu uso linux, não diariamente mas para a certificação de Ethical Hacker da EC-Council e para alguns recursos do meu trabalho eu tenho contato com algumas distribuições, porém quem me conhece sabe que eu sou Microsoft fanboy de carteirinha e é logico que vou iniciar com o Windows Server 2016 TP3 e PowerShell.

Para começar então. Após a instalação do Windows Server 2016 adicione a feature de Containers (É necessário reiniciar o servidor).

O servidor deverá estar conectado a Internet para o download da imagem e a melhor pratica para lidar com as cargas de trabalho dos containers é usar o Windows Server no modo Core para o Host.

Após reiniciar o servidor já é possível verificar a lista de cmdlets do modulo “Containers”

Porém, precisamos configurar o ambiente com um switch de rede e baixar e configurar a imagem do SO no formato .WIM que está disponivel em https://aka.ms/ContainerOSImage e tem. 2.9 GB

Não se preocupe pois a Microsoft disponibilizou um script do PowerShell para isso  e você pode baixar esse script em https://aka.ms/setupcontainers

Ou ainda melhor, usar a linha de comando de wget -uri https://aka.ms/setupcontainers -OutFile C:\scripts\installcontainer.ps1

E depois executar o script como na imagem abaixo (Demora um pouco).

Agora que a instalação terminou você pode criar um container a partir da imagem baixada e associar esse container a um virtual switch.

# Exibir o nome da imagem que você baixou
Get-ContainerImage

#Exibir o nome do Switch existente
Get-VMSwitch

#Criar uma variável do Switch Virtual
$switch=(get-VMSwitch).name

#Criar uma variável do no da imagem baixada
$imagem=Get-ContainerImage -name WindowsServerCore

#Comando que cria um container usando as variáveis criadas acima
$CreateContainer=New-Container -Name “NomedoContainer” -ContainerImage $imagem -switchName $switch

Você pode usar esses comandos e criar um script:

Agora você já criou um container.

Comandos básicos de gerenciamento já vimos. Você executa o comando Get-Command -Module Containers

Para se conectar e instalar recursos no container execute os seguintes comandos:

#Listar os containers
Get-Containers

#Iniciar um contêiner
Start-Container -Name NomeDocontainer

#Conectar-se a um contêiner
Enter-PSSession -ContainerId (Get-Container NomeDoContainer).id -RunAsAdministrator

Você pode então instalar por exemplo o IIS com o comando “Install-WindowsFeature Web-Server” ou até mesmo o NGinX como explicado a seguir.

#Baixar o nginx
wget -uri ‘http://nginx.org/download/nginx-1.9.3.zip’ -OutFile “c:\nginx-1.9.3.zip”

#Descompactar o arquivo baixado na raiz do conteiner
Expand-Archive -Path C:\nginx-1.9.3.zip -DestinationPath c:\ -Force

#Sair do conteiner
Exit

#Agora é necessário parar e depois iniciar o conteiner.
Stop-Container -Name NomeDocontainer

Conecte-se novamente e acesso o diretorio do NGINX e execute o comando:
Start niginx

Agora basta abrir o browser e digitar o endereço IP do conteiner.

Conclusão:

Em poucos passos (Eu achei poucos) podemos iniciar um container com uma role especifica de Web Server. A instalação usando o script já deixou o Docker pronto para usarmos e isso será discutido no próximo artigo.
Novamente, espero que esse artigo possa ser útil e traga uma boa discussão.