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:
- Criar imagens de contêiner para o Service Fabric
- Criar e executar um aplicativo do Service Fabric com contêineres
- Como o failover e o dimensionamento são manipulados no Service Fabric
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.