Base de conhecimento  /  Gerenciador de aplicativos em nuvem  /  Automatização de implementações
Base de conhecimento  /  Gerenciador de aplicativos em nuvem  /  Automatização de implementações

Implementação em contêineres do Docker a partir do Cloud Application Manager

Atualizado por Julio Castanar em dez 28, 2018
Código do artigo: kb/392

Neste artigo:

Visão geral

Este artigo se destina a auxiliar os clientes do Cloud Application Manager que desejam criar e gerenciar caixas.

Ele explica como usar as caixas de contêiner, que permitem definir e implementar imagens do Docker em ambientes Linux. A vantagem da implementação em contêineres do Docker por meio do Cloud Application Manager é a habilidade de consumir Dockerfiles diretamente nas caixas. Agora, você pode vincular aplicativos distribuídos e de várias camadas, que envolvem a automatização em caixas e contêineres do Docker.

Público

Usuários do Cloud Application Manager que utilizam recursos de Application Lifecycle Management (ALM - gerenciamento de ciclo de vida de aplicativos).

Pré-requisitos

  • Acesso ao site Applications (módulo Application Lifecycle Management (ALM - gerenciamento de ciclo de vida de aplicativos)) do Cloud Application Manager como um usuário autorizado.

  • Um provedor já configurado no Cloud Application Manager. Consulte administrar provedores.

Como o Docker funciona no Cloud Application Manager

O Docker funciona no Cloud Application Manager por meio da caixa de serviço de contêiner do Docker, uma caixa do Linux que entende os comandos do Docker quando é implementada. Na caixa, você modela seu aplicativo em um Dockerfile, que ajuda a criar a imagem do seu aplicativo em um contêiner do Docker. Escreva os comandos do Dockerfile não apenas em instruções do Docker, mas também em Bash e PowerShell.

No momento da implementação, o Cloud Application Manager executa a caixa do Docker como qualquer outra caixa no ambiente virtual. O Cloud Application Manager trata o contêiner do Docker como uma variável de caixa e o Dockerfile como uma variável de arquivo dentro dele. Na máquina virtual, o Cloud Application Manager instala primeiro o cliente do Docker, a partir do qual nós instalamos o contêiner do Docker usando o comando daemon BUILD.

Configurar e implementar contêineres do Docker

Veja como a implementação em contêineres do Docker funciona no Cloud Application Manager usando ElasticSearch, por exemplo. O ElasticSearch é um mecanismo de busca RESTful que torna mais fácil analisar, explorar e visualizar dados. Para começar, criamos uma caixa de contêiner e, em seguida, configuramos o aplicativo em um Dockerfile.

Criar uma caixa de contêiner do Docker

Na página Caixas, clique em Novo > Contêiner. Na caixa de diálogo, especifique um nome para identificá-lo no catálogo de serviços de caixa. Como opção, insira outros metadados. Em seguida, salve para continuar.

Nova caixa de contêiner

Criar um Dockerfile

Agora, você vê um layout de caixa no qual pode configurar a implementação do seu aplicativo com variáveis e o Dockerfile.

Novo Dockerfile

Vamos adicionar um Dockerfile para construir a imagem do ElasticSearch que será executada no contêiner do Docker. Em Dockerfile, clique em Novo. Na caixa de diálogo, clique em Criar um Dockerfile em branco. Isso cria um Dockerfile em branco.

Criar novo Dockerfile

Editar um Dockerfile

Adicione as instruções que instalam o ElasticSearch.

#
# ElasticSearch Dockerfile
#
# https://github.com/dockerfile/elasticsearch
#

# Pull base image.
FROM dockerfile/java

# Install ElasticSearch.
RUN \
  cd /tmp && \
  wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.1.tar.gz && \
  tar xvzf elasticsearch-1.2.1.tar.gz && \
  rm -f elasticsearch-1.2.1.tar.gz && \
  mv /tmp/elasticsearch-1.2.1 /elasticsearch

# Define mountable directories.
VOLUME ["/data"]

# Define working directory.
WORKDIR /data

# Define default command.
CMD ["/elasticsearch/bin/elasticsearch"]

As instruções no Dockerfile são diretas: além da imagem de base do Linux que contém Java, baixamos o ElasticSearch, montamos uma unidade e instalamos o ElasticSearch nesse local.

Especificar portas para o contêiner do Docker

Para permitir o tráfego para o ElasticSearch e a partir dele no contêiner do Docker e em seu host, é preciso especificar portas. Para isso, adicionamos variáveis de porta. Em Variáveis, clique em Novo. Criamos uma aqui para permitir o tráfego HTTP através da porta 9200 e outra para que o ElasticSearch estabeleça a comunicação interna através da porta 9300.

Nova variável de porta

Assim que adicionamos as variáveis, o Cloud Application Manager gera automaticamente uma instrução EXPOSE para elas no Dockerfile. Isso instrui o contêiner do Dockerfile para que ele observe as portas 9200 e 9300.

Expor portas

As variáveis de texto, número ou outros tipos são tratadas no momento da implementação como variáveis de ambiente do Docker. Use esta sintaxe para se referir a elas nos Dockerfiles:

`{{variable_name}}`

A variável de arquivo é prática para executar comandos adicionais usando RUN ou para acionar um arquivo executável usando CMD. No entanto, você deve primeiro copiá-la da URL remota do Cloud Application Manager no sistema de arquivos do contêiner, no caminho que você especifica usando Adicionar no Dockerfile:

ADD `{{file_variable_name}}` destination_path_in_container.

As Associações (bindings) transmitem cadeias de conexões ou valores de implementação para a conexão com outros contêineres ou caixas do Docker. Para fazer a associação com outro contêiner ou caixa do Docker, crie uma associação e transmita as referências de associação por meio de variáveis de expressão de texto com esta sintaxe:

`{{ binding_name.variable_name }}`

Aqui, nós fizemos a conexão com uma caixa que implementa um bucket S3 usando uma associação.

Nova variável de associação

Os Dockerfiles não permitem scripts e, portanto, usamos uma expressão de texto para transmitir a referência de associação.

Nova variável de texto

Implementar a caixa do Docker

Você pode iniciar a caixa do Docker em qualquer ambiente, inclusive nuvens públicas ou privadas ou um data center. Aqui, nós iniciamos a caixa ElasticSearch do Docker na AWS. Na página da caixa ElasticSearch, clique em Implementar. Escolha uma política de implementação que contenha configurações de implementação para um provedor de nuvem e, opcionalmente, adicione tags, agende automaticamente o contêiner e especifique outros metadados.

Nova instância do Docker

Expanda o ElasticSearch para consultar todas as variáveis da caixa do Docker. Veja como você pode alterar antecipadamente os valores da implementação. Clique em Implementar para iniciar a caixa.

Limitações no uso do Docker

Observe estas limitações ao usar o Docker no Cloud Application Manager.

  • Uma caixa do Docker pode instalar uma imagem por contêiner em uma instância.
  • Os comandos do Dockerfile do Docker não comportam argumentos nem indicadores. Portanto, você pode transmitir argumentos por meio do comando ENTRYPOINT.
  • Ao usar o comando VOLUME, você pode armazenar dados em diretórios no contêiner, mas não pode montá-los nem associá-los ao sistema de arquivos do host.
  • Implemente o Docker usando essas distribuições Linux suportadas: Ubuntu 15.04, Ubuntu 14.10, Ubuntu 14.04, Ubuntu 13.10, Ubuntu 13.04, Ubuntu 12.10, CentOS, Red Hat Enterprise Linux 6.5 ou posterior, Fedora.

Gerenciar o ciclo de vida dos contêineres do Docker

Você pode gerenciar o ciclo de vida dos contêineres do Docker como qualquer outra caixa. Isso significa que, após a implementação, você poderá alterar a configuração do Dockerfile e reiniciá-lo na mesma instância usando o editor de ciclo de vida da instância. Vá para a página da instância e clique em Lifecycle Editor.

Acessando o Lifecycle Editor

No editor, você pode editar o Dockerfile, as variáveis e usar o menu suspenso de ações para relançar as alterações na instância. Para processar essas ações no contêiner em back-end, executamos comandos daemon do Docker, tais como BUILD, RUN, KILL e REMOVE.

Lifecycle Editor

Veja aqui o que acontece quando você faz uma nova instalação ou configuração:

  • A nova instalação recria o contêiner na instância.
  • A nova configuração inicia o novo contêiner, substituindo o contêiner existente.

Como contatar o suporte do Cloud Application Manager

Lamentamos que você tenha encontrado um problema com o Cloud Application Manager. Consulte as dicas de troubleshooting ou entre em contato com o suporte do Cloud Application Manager e apresente detalhes e capturas de tela, conforme possível.

Para problemas relacionados a chamadas de API, envie o corpo da solicitação junto com os detalhes referentes ao problema.

Em caso de erro de caixa, compartilhe a caixa no espaço de trabalho que sua organização e o Cloud Application Manager podem acessar e anexe os registros.

  • Linux: SSH e localize o registro em /var/log/elasticbox/elasticbox-agent.log
  • Windows: RDP na instância para localizar o registro em \ProgramData\ElasticBox\Logs\elasticbox-agent.log
Powered by Translations.com GlobalLink OneLink SoftwarePowered By OneLink