Olá pessoal, tudo bem?

Na segunda-feira, dia 20 de junho de 2016, foi anunciada a beta pública da versão 1.12 do Docker, agora disponível também para Windows e para o OS X. Nesta versão, que obviamente também está disponível para o Linux, o Docker não precisa mais do toolbox para executar, com dependência apenas de uma máquina virtual minimalista. Está nova arquitetura permite que o Docker tenha uma maior integração com o sistema operacional host.

Instalação

A instalação é bem simples, basta acessar o website do Docker, selecionar o sistema operacional desejado, e seguir as instruções. No windows, o único requisito é que a distribuição do mesmo tenha suporte ao Hyper-V. Já no ubuntu, deverão ser seguidas as instruções da documentação do docker, porém para obter a versão correta, precisei utilizar o repositório experimental na configuração do repo do apt:

Conteúdo do arquivo /etc/apt/sources.list.d/docker.list no Ubuntu 16.04:

    deb https://apt.dockerproject.org/repo ubuntu-xenial experimental  

Swarm mode

O swarm mode é um dos principais recursos novos disponibilizados na versão 1.12. Ele permite que a orquestração de containers aconteça nativamente no docker, sem precisar instalar o docker swarm.

Para iniciar o swarm é muito simples, basta executar o comando:

docker swarm init

A partir dai, o cluster do swarm será criado e o computador (ou VM) atual será um nodo do tipo Manager no Swarm.

Cluste2

Além de Manager, o nodo pode ser um Worker também, e cada um tem um papel diferente:

  • Worker: Os nodos do tipo Worker tem como responsabilidade apenas executar containers.
  • Manager: Além das mesmas atribuições do tipo worker, os nodos do tipo Manager são responsáveis pelo gerenciamento do cluster.

https://blog.docker.com/2016/06/docker-1-12-built-in-orchestration/

Para incluir o computador (Nodo) atual em um cluster do Swarm, basta executar:

docker swarm join [host:port]

Isto fará com que o nodo se torne parte do cluster do swarm existente, mas como um worker. Para integrar o nodo como um Manager, deverá ser incluída a opção --manager .

Cluster

E para visualizar todos os nodos em um cluster do swarm, basta executar o comando:

docker node ls

No swarm mode foi incluído também o conceito de serviços, que são aplicações (imagens do docker) que executam sobre  o cluster do swarm, habilitando replicação e load balancing (que internamente utiliza o IPVS do Linux). O swarm também gerencia falhas que ocorram no Cluster , e se um nodo cair ele irá gerar novas réplicas dos containers que estavam operando naquele nodo.

Para iniciar um serviço no cluster do swarm basta executar o comando:

docker service create --replicas 2 -p 80:80 --name [service name] [docker image]

No comando acima, está sendo criado um serviço de nome [service name] , baseado na imagem [docker image] do docker, com duas réplicas, e utilizando a porta 80. É importante salientar que, apesar de aqui eu estar dando um exemplo com apenas um serviço, podem ser criados diversos serviços com imagens diferentes em um cluster.

Internamente o docker swarm estará gerenciando os containers para você, e executando o comando:

docker ps

é possível visualizar os containers criados pelo swarm no nodo atual.

 

Era isso pessoal,

aqui foquei no swarm mode, porém diversas outras melhorias foram efetuadas. Para quem quiser saber mais, basta acessar o Release Notes da versão 1.12-rc2.

Abraços a todos e boa semana!