Partilhar via


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

Este tutorial é parte um de uma série de tutoriais que demonstra como usar contêineres em um cluster do Linux Service Fabric. Neste tutorial, um aplicativo de vários contêineres é preparado para uso com o Service Fabric. Em 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 a partir da fonte do aplicativo
  • Implantar uma instância do Azure Container Registry (ACR)
  • Marcar uma imagem de contêiner para ACR
  • Carregue a imagem para o ACR

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

Pré-requisitos

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

Obter código de aplicação

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

Use o git para baixar uma cópia do aplicativo para 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 ficheiro 'docker-compose.yml'. A pasta 'azure-vote' contém o serviço de frontend Python junto com o Dockerfile usado para construir a imagem. O diretório 'Voting' contém o pacote de aplicativo do Service Fabric que é implantado no cluster. Esses diretórios contêm os recursos 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 front-end. Este comando usa o Dockerfile neste diretório para criar a imagem.

docker build -t azure-vote-front .

Observação

Se você está recebendo permissão negada, siga esta documentação sobre como trabalhar com docker sem sudo.

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

docker images

Implementar o Azure Container Registry

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

az login

Em seguida, use o comando az account para escolher sua assinatura para criar o Registro de Contêiner do Azure. Tem de introduzir o ID de subscrição da sua subscrição do Azure em vez de <subscription_id>.

az account set --subscription <subscription_id>

Ao implantar um Registro de Contêiner do Azure, você primeiro 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 chamado 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. Este nome deve ser alfanumérico e exclusivo.

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

No restante deste tutorial, usamos "acrName" como um espaço reservado para o nome do registro de contêiner que você escolheu. Por favor, tome nota deste valor.

Inicie sessão no seu registo de contentores

Faça login na sua instância ACR antes de enviar imagens para ela. Utilize o comando az acr login para concluir a operação. Forneça o nome exclusivo dado ao registro de contêiner quando ele foi criado.

az acr login --name <acrName>

O comando retorna uma mensagem 'Login bem-sucedido' uma vez concluído.

Marcar imagens de contêiner

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

Para ver uma lista de imagens atuais, use 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 loginServer, execute o seguinte comando:

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

Isso gera uma tabela com os seguintes resultados. Esse resultado será usado para marcar sua imagem azure-vote-front antes de enviá-la 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 seu registro de contêiner. Além disso, adicione :v1 ao final do nome da imagem. Essa tag indica a versão da imagem.

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

Uma vez etiquetado, 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

Publicar imagens no repositório

Envie a imagem azure-vote-front para o registo.

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

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

Os comandos push do docker levam alguns minutos para serem concluídos.

Listar imagens no registro

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

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

Saída:

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

Na conclusão do tutorial, a imagem do contêiner foi armazenada em uma instância privada do Registro de Contêiner do Azure. Esta imagem é implementada a partir do ACR para um cluster do Service Fabric nos tutoriais subsequentes.

Próximos passos

Neste tutorial, um aplicativo foi extraído do GitHub e imagens de contêiner foram criadas e enviadas por push para um registro. Foram efetuados os seguintes passos:

  • Clonar a origem do aplicativo do GitHub
  • Criar uma imagem de contêiner a partir da fonte do aplicativo
  • Implantar uma instância do Azure Container Registry (ACR)
  • Marcar uma imagem de contêiner para ACR
  • Carregue a imagem para o ACR

Avance para o próximo tutorial para aprender sobre como empacotar contêineres em um aplicativo do Service Fabric usando o Yeoman.