Criando um Docker Host Linux no Azure

Referência: https://docs.docker.com/v1.9/engine/installation/azure

O que é o Docker? https://www.docker.com/what-docker

Existem diferentes formas de criar um Docker Host, vou demonstrar uma delas nesse post.

O primeiro passo será criar uma nova máquina virtual com Linux no Azure que suporte a extensão Docker VM. Nesse caso irei utilizar uma imagem da galeria do Azure para facilitar o trabalho, Ubuntu Server 15.10.

UbuntuVM

Em determinado passo no processo de configuração para criar a nova máquina virtual, será possível incluir extensões. Vamos incluir a Docker Extension.

DockerExtension

Para que seja possível criar a VM com a extensão do Docker, no momento de instalação da extensão é necessário realizar o upload de três certificados para o Docker Engine e configurar a porta de conexão.

DockerExtensionCert

Para a criação dos certificados serão seguidas as seguintes recomendações: https://docs.docker.com/engine/security/https.

Utilizei uma outra máquina Linux que tenho para a criação dos certificados. Também é possível instalar a VM sem essa extensão e realizar o processo de instalação manual após a criação da VM, mas preferi facilitar o processo e ter a VM com ela instalada desde o início.

CertCreateLinux

Após a criação, devemos selecionar os certificados criados.

DockerExtensionCertSelected

Por fim, falta validar as configurações e finalizar a criação da VM.

Quando a VM estiver criada, vamos configurar um DNS name label para encontrar a máquina de forma mais fácil e eficiente. Basta clicar nas configurações de Public IP –> Settings –> Configuration –> DNS name label.

DNSName

Na criação dos certificados esse DNS pode ser utilizado na configuração de CN.
Ex.: openssl req -subj "/CN=host.southcentralus.cloudapp.azure.com" -new -key server-key.pem -out server.csr

O próximo passo é criar um novo endpoint para que seja possível encontrar o Docker Host criado no Azure. Clique no Network Security Group da VM criada –> Settings –> Inbound security rules –> add.

Criei o endpoint TCP para a porta 2376, default do Docker.

DockerEndpoint

Por fim, basta testar se a conexão com o Docker Host está funcionando, utilizando o comando a seguir pela máquina cliente:

Ex.: $ docker --tls --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H tcp://host.southcentralus.cloudapp.azure.com:2376 info

Para validar a versão:

Ex.: docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H=host.southcentralus.cloudapp.azure.com:2376 version

HostResult

São apresentadas as informações do Docker Host pronto para ser utilizado.