Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste tutorial, você prepara um aplicativo de vários contêineres para usar no Kubernetes. Você usa ferramentas de desenvolvimento existentes, como o Docker Compose, para criar e testar localmente o aplicativo. Você aprende a:
- Clone o código-fonte de uma aplicação de exemplo do GitHub.
- Crie uma imagem de contêiner a partir da fonte do aplicativo de exemplo.
- Teste o aplicativo de vários contêineres em um ambiente Docker local.
Uma vez concluído, o seguinte aplicativo é executado em seu ambiente de desenvolvimento local:
Em tutoriais posteriores, carregue a imagem do contêiner em um Registro de Contêiner do Azure (ACR) e implante-a em um cluster AKS.
Antes de começar
Este tutorial pressupõe uma compreensão básica dos principais conceitos do Docker, como contêineres, imagens de contêiner e comandos docker
. Para obter uma cartilha sobre noções básicas de contêiner, consulte Introdução ao Docker.
Para concluir este tutorial, você precisa de um ambiente de desenvolvimento Docker local executando contêineres Linux. O Docker fornece pacotes que configuram o Docker em um sistema Mac, Windows ou Linux .
Note
O Azure Cloud Shell não inclui os componentes do Docker necessários para concluir cada etapa nestes tutoriais. Portanto, recomendamos o uso de um ambiente de desenvolvimento completo do Docker.
Obter código de aplicação
O aplicativo de exemplo usado neste tutorial é um aplicativo básico de fachada de loja, incluindo as seguintes implantações e serviços do Kubernetes:
- Vitrine: aplicativo Web para que os clientes visualizem produtos e façam pedidos.
- Serviço do produto: Mostra as informações do produto.
- Serviço de pedidos: Faz pedidos.
- Rabbit MQ: Fila de mensagens para processamento de pedidos.
- Git
- CLI do Azure para Desenvolvedores
Use o git para clonar o aplicativo de exemplo para seu ambiente de desenvolvimento.
git clone https://github.com/Azure-Samples/aks-store-demo.git
Mude para o diretório clonado.
cd aks-store-demo
Revise o arquivo Docker Compose
A aplicação de exemplo que criarás neste guia usa o ficheiro YAML docker-compose-quickstart do repositório que clonaste.
services:
rabbitmq:
image: rabbitmq:3.13.2-management-alpine
container_name: 'rabbitmq'
restart: always
environment:
- "RABBITMQ_DEFAULT_USER=username"
- "RABBITMQ_DEFAULT_PASS=password"
ports:
- 15672:15672
- 5672:5672
healthcheck:
test: ["CMD", "rabbitmqctl", "status"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- ./rabbitmq_enabled_plugins:/etc/rabbitmq/enabled_plugins
networks:
- backend_services
order-service:
build: src/order-service
container_name: 'order-service'
restart: always
ports:
- 3000:3000
healthcheck:
test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://order-service:3000/health"]
interval: 30s
timeout: 10s
retries: 5
environment:
- ORDER_QUEUE_HOSTNAME=rabbitmq
- ORDER_QUEUE_PORT=5672
- ORDER_QUEUE_USERNAME=username
- ORDER_QUEUE_PASSWORD=password
- ORDER_QUEUE_NAME=orders
- ORDER_QUEUE_RECONNECT_LIMIT=3
networks:
- backend_services
depends_on:
rabbitmq:
condition: service_healthy
product-service:
build: src/product-service
container_name: 'product-service'
restart: always
ports:
- 3002:3002
healthcheck:
test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://product-service:3002/health"]
interval: 30s
timeout: 10s
retries: 5
environment:
- AI_SERVICE_URL=http://ai-service:5001/
networks:
- backend_services
store-front:
build: src/store-front
container_name: 'store-front'
restart: always
ports:
- 8080:8080
healthcheck:
test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://store-front:80/health"]
interval: 30s
timeout: 10s
retries: 5
environment:
- VUE_APP_PRODUCT_SERVICE_URL=http://product-service:3002/
- VUE_APP_ORDER_SERVICE_URL=http://order-service:3000/
networks:
- backend_services
depends_on:
- product-service
- order-service
networks:
backend_services:
driver: bridge
Criar imagens de contêiner e executar aplicativos
- Docker
- CLI do Azure para Desenvolvedores
Você pode usar Docker Compose para automatizar a criação de imagens de contêiner e a implantação de aplicativos de vários contêineres.
Docker
Crie a imagem do contêiner, baixe a imagem do RabbitMQ e inicie o aplicativo usando o
docker compose
comando:docker compose -f docker-compose-quickstart.yml up -d
Visualize as imagens criadas usando o
docker images
comando.docker images
A saída de exemplo condensada a seguir mostra as imagens criadas:
REPOSITORY TAG IMAGE ID aks-store-demo-product-service latest 72f5cd7e6b84 aks-store-demo-order-service latest 54ad5de546f9 aks-store-demo-store-front latest 1125f85632ae ...
Exiba os contêineres em execução usando o
docker ps
comando.docker ps
A saída de exemplo condensada a seguir mostra quatro contêineres em execução:
CONTAINER ID IMAGE f27fe74cfd0a aks-store-demo-product-service df1eaa137885 aks-store-demo-order-service b3ce9e496e96 aks-store-demo-store-front 31df28627ffa rabbitmq:3.13.2-management-alpine
Teste o aplicativo localmente
Para ver seu aplicativo em execução, navegue até http://localhost:8080
em um navegador da Web local. O aplicativo de exemplo é carregado, conforme mostrado no exemplo a seguir:
Nesta página, pode ver produtos, adicioná-los ao carrinho e, em seguida, fazer uma encomenda.
Limpeza de recursos
Como você validou a funcionalidade do aplicativo, você pode parar e remover os contêineres em execução. Não exclua as imagens de contêiner - você as usa no próximo tutorial.
Pare e remova as instâncias e os recursos do contêiner usando o
docker-compose down
comando.docker compose down
Próximos passos
- Azure CLI
- CLI do Azure para Desenvolvedores
Neste tutorial, você criou um aplicativo de exemplo, criou imagens de contêiner para o aplicativo e, em seguida, testou o aplicativo. Você aprendeu a:
- Clone uma fonte de aplicativo de exemplo do GitHub.
- Crie uma imagem de contêiner a partir da fonte do aplicativo de exemplo.
- Teste o aplicativo de vários contêineres em um ambiente Docker local.
No próximo tutorial, você aprenderá a armazenar imagens de contêiner em um ACR.
Azure Kubernetes Service