Docker Swarm vs Docker Compose? Agora eles trabalham juntos! Docker 1.13 introduziu uma nova versão do Docker Compose. O principal recurso dessa versão é permitir que os serviços definidos usando arquivos do Docker Compose sejam implantados diretamente no Docker Engine habilitado com o modo Swarm. O Docker Swarm com o Docker Compose permite a implantação simplificada de aplicativos com vários contêineres em vários hosts.

Docker 1.13

Este blog demonstra como um arquivo simples do Docker Swarm e do Docker Compose mostra como os serviços são criados e implantados no Docker 1.13.

Aqui está uma definição do Docker Compose v2 para iniciar um nó de banco de dados do Couchbase:

Essa definição pode ser iniciada em um Docker Engine sem o modo Swarm como:

Isso iniciará uma única réplica do serviço definido no arquivo Compose. Esse serviço pode ser dimensionado como:

Isso funcionaria bem em um único host. Se o modo swarm estiver ativado no Docker Engine, ele mostrará a mensagem:

O Docker Compose nos oferece aplicativos com vários contêineres, mas os aplicativos ainda estão restritos a um único host. E esse é um ponto único de falha. O Docker Compose no modo Swarm permite criar um cluster de Docker Engines. Com a versão 1.13, implantação de pilha de docas pode ser usado para implantar um arquivo do Docker Compose no modo Docker Swarm. Aqui está um exemplo de definição do Docker Compose v3:

Como você pode ver, a única alteração é o valor de versão atributo. Há outros Mudanças no Docker Compose v3. Além disso, leia sobre diferentes versões do Docker Compose e como atualizar da v2 para a v3. Habilite o Docker Compose com o modo swarm:

Outros nós podem se juntar a esse cluster de swarm e isso permitiria facilmente implantar o aplicativo de vários contêineres em um host múltiplo também. Use o Docker para implantar os serviços no Swarm definidos no arquivo Compose como:

Um valor padrão de Compose file aqui tornaria o comando um pouco mais curto. #30352 deve cuidar disso. A lista de serviços em execução pode ser verificada usando serviço docker ls comando:

A lista de contêineres em execução no serviço pode ser vista usando serviço docker ps comando:

Nesse caso, um único contêiner está sendo executado como parte do serviço. O nó é listado como moby que é o nome padrão do Docker Engine em execução usando o Docker para Mac. O serviço agora pode ser dimensionado como:

A lista de contêineres pode ser vista novamente como:

Observe que os contêineres recebem o nome usando o formato _n. Ambos os contêineres estão em execução no mesmo host. Observe também que os dois contêineres são nós independentes do Couchbase e ainda não estão configurados em um cluster. Isso já foi explicado em Cluster do Couchbase usando o Docker e uma atualização das etapas será feita em breve. Normalmente, um serviço terá vários contêineres em execução espalhados por vários hosts. O Docker 1.13 apresenta um novo comando Registros de serviço do docker para transmitir o log de serviço de todos os contêineres em todos os hosts para o seu console. No nosso caso, isso pode ser visto usando o comando Registros de serviço do docker couchbase_db e se parece com isso:

O preâmbulo da instrução de registro usa o formato .@. E, em seguida, aparece a mensagem de registro real do seu contêiner. Em um primeiro momento, anexar o ID do contêiner pode parecer redundante. Mas Serviços do Docker são autorrecuperáveis. Isso significa que, se um contêiner morrer, o Docker Engine iniciará outro contêiner para garantir o número especificado de réplicas em um determinado momento. Esse novo contêiner terá um novo ID. Assim, ele permite anexar a mensagem de registro do contêiner correto. Portanto, uma comparação rápida dos comandos:

 Docker Compose v2  Docker compose v3
 Iniciar serviços docker-compose up -d implantação de pilha de docker --compose-file=docker-compose.yml  
 Serviço de escala docker-compose scale = escala de serviços da docker =
 Desligamento docker-compose down pilha de docas rm
 Multi-hospedeiro Não Sim

Quer começar a usar o Couchbase? Dê uma olhada em Kits iniciais do Couchbase. Deseja saber mais sobre como executar o Couchbase em contêineres?

Autor

Postado por Arun Gupta, vice-presidente de defesa do desenvolvedor, Couchbase

Arun Gupta é o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experiência na liderança de equipes multifuncionais para desenvolver e executar estratégias, planejamento e execução de conteúdo, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e é membro fundador da equipe Java EE. Gupta é autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experiência em palestras em mais de 40 países sobre diversos tópicos e é um JavaOne Rock Star há três anos consecutivos. Gupta também fundou o capítulo Devoxx4Kids nos EUA e continua a promover a educação tecnológica entre as crianças. Autor de vários livros sobre tecnologia, corredor ávido, viajante do mundo inteiro, campeão de Java, líder de JUG, membro do NetBeans Dream Team e capitão do Docker, ele pode ser facilmente acessado em @arungupta.

Deixar uma resposta