Compartilhar via


Tutorial: Criar imagens de contêiner em um cluster do Service Fabric do Linux

Este tutorial é a parte um de uma série de tutoriais que demonstra como usar contêineres em um cluster do Service Fabric do Linux. Neste tutorial, um aplicativo com vários contêineres é preparado para uso com o Service Fabric. Nos tutoriais subsequentes, essas imagens são usadas como parte de um aplicativo do Service Fabric. Neste tutorial, você aprenderá a:

  • Clonar a origem do aplicativo do GitHub
  • Criar uma imagem de contêiner da origem do aplicativo
  • Implantar uma instância de ACR (Registro de Contêiner do Azure)
  • Marcar uma imagem de contêiner para ACR
  • Carregar a imagem para ACR

Nesta série de tutoriais, você aprenderá a:

Prerequisites

  • Ambiente de desenvolvimento do Linux configurado para o Service Fabric. Siga as instruções aqui para configurar seu ambiente do Linux.
  • Este tutorial exige que você esteja executando a CLI do Azure versão 2.0.4 ou posterior. Execute az --version para encontrar a versão. Se você precisar instalar ou atualizar, confira Instalar a CLI do Azure.
  • Além disso, ele requer que você tenha uma assinatura do Azure disponível. Para obter mais informações sobre uma versão de avaliação gratuita, acesse aqui.

Obter o código de aplicativo

O aplicativo de exemplo usado neste tutorial é um aplicativo de votação. O aplicativo consiste de um componente Web de front-end e uma instância Redis de back-end. Os componentes são empacotados em imagens de contêiner.

Use o git para baixar uma cópia do aplicativo em seu ambiente de desenvolvimento.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/

A solução contém duas pastas e um arquivo ' docker-compose.yml'. A pasta 'azure voto' contém o serviço de front-end do Python junto com o Dockerfile usado para criar a imagem. O diretório 'Votação' contém o pacote de aplicativos do Service Fabric que é implantado no cluster. Esses diretórios contêm os ativos necessários para este tutorial.

Criar imagens de contêiner

Dentro do diretório azure-vote' , execute o seguinte comando para criar a imagem para o componente Web de front-end. Esse comando usa o Dockerfile nesse diretório para montar a imagem.

docker build -t azure-vote-front .

Observação

Se a permissão estiver sendo negada, siga esta documentação sobre como trabalhar com o docker sem sudo.

Este comando pode levar algum tempo, pois todas as dependências necessárias precisam ser extraídas do Hub do Docker. Quando concluído, use o comando docker images para ver a imagem azure-vote-front que acabou de criar.

docker images

Implantar o Registro de Contêiner do Azure

Primeiro, execute o comando az login para entrar em sua conta do Azure.

az login

Em seguida, use o comando conta az para escolher sua assinatura para criar o Registro de Contêiner do Azure. Você tem que inserir a ID da sua assinatura do Azure no lugar de <subscription_id>.

az account set --subscription <subscription_id>

Ao implantar um Registro de Contêiner do Azure, primeiro você precisa de um grupo de recursos. Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados.

Crie um grupo de recursos com o comando az group create. Neste exemplo, um grupo de recursos denominado myResourceGroup é criado na região westus.

az group create --name <myResourceGroup> --location westus

Crie um Registro de Contêiner do Azure com o comando az acr create. Substitua <acrName> pelo nome do registro de contêiner que você deseja criar em sua assinatura. Esse nome de exibição deve ser alfanumérico e exclusivo.

az acr create --resource-group <myResourceGroup> --name <acrName> --sku Basic --admin-enabled true

Durante o restante deste tutorial, utilizamos "acrName" como um espaço reservado para o nome do registro de contêiner escolhido. Anote este valor.

Entre em seu registro de contêiner

Entre na instância do ACR antes de enviar imagens por push a ela. Use o comando az acr login para concluir a operação. Forneça o nome exclusivo fornecido para o Registro de contêiner quando ele foi criado.

az acr login --name <acrName>

O comando retorna uma mensagem de 'Logon bem-sucedido' quando é concluído.

Marcar imagens de contêiner

Cada imagem de contêiner precisa ser marcada com o nome do registro loginServer. Essa marca é usada para roteamento ao enviar imagens de contêiner por push a um registro da imagem.

Para consultar uma lista de imagens atuais, utilize o comando docker images.

docker images

Saída:

REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE
azure-vote-front             latest              052c549a75bf        About a minute ago   913MB

Para obter o nome de loginServer, execute o comando a seguir:

az acr show --name <acrName> --query loginServer --output table

Isso gera uma tabela com os resultados a seguir. Esse resultado será usado para marcar sua imagem azure-vote-front antes de enviá-la por push para o registro de contêiner na próxima etapa.

Result
------------------
<acrName>.azurecr.io

Agora, marque a imagem azure-vote-front com o loginServer do registro de contêiner. Além disso, adicione :v1 ao final do nome da imagem. Esta marcação indica a versão da imagem.

docker tag azure-vote-front <acrName>.azurecr.io/azure-vote-front:v1

Depois de marcada, execute 'docker images' para verificar a operação.

Saída:

REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front                       latest              052c549a75bf        23 minutes ago      913MB
<acrName>.azurecr.io/azure-vote-front  v1                  052c549a75bf        23 minutes ago      913MB

Efetuar push de imagens para registro

Enviar a imagem azure-vote-front por push ao registro.

Usando o exemplo a seguir, substitua o nome do loginServer do ACR pelo loginServer do seu ambiente.

docker push <acrName>.azurecr.io/azure-vote-front:v1

Os comandos de push do Docker leva alguns minutos para ser concluído.

Lista de imagens no registro

Para retornar uma lista de imagens que foram enviadas por push ao Registro de Contêiner do Azure, use o comando az acr repository list. Atualize o comando com o nome da instância do ACR.

az acr repository list --name <acrName> --output table

Saída:

Result
----------------
azure-vote-front

Na conclusão do tutorial, a imagem de contêiner foi armazenada em uma instância privada de Registro de Contêiner do Azure. Essa imagem será implantada do ACR em um cluster do Service Fabric nos tutoriais subsequentes.

Próximas etapas

Neste tutorial, foi efetuado pull de um aplicativo do GitHub e as imagens de contêiner foram criadas e enviadas por push para um Registro. As etapas a seguir foram concluídas:

  • Clonar a origem do aplicativo do GitHub
  • Criar uma imagem de contêiner da origem do aplicativo
  • Implantar uma instância de ACR (Registro de Contêiner do Azure)
  • Marcar uma imagem de contêiner para ACR
  • Carregar a imagem para ACR

Avança para o próximo tutorial para saber mais sobre empacotamento de contêineres em um aplicativo do Service Fabric usando o Yeoman.