Tutorial: Criar uma imagem de contêiner para implantação nas Instâncias de Contêiner do Azure
As Instâncias de Contêiner do Azure permitem a implantação de contêineres do Docker na infraestrutura do Azure sem o provisionamento de quaisquer máquinas virtuais ou a adoção de serviço de nível superior. Neste tutorial, você empacotará um aplicativo Web pequeno no Node.js em uma imagem de contêiner que pode ser executada usando as Instâncias de Contêiner do Azure.
Neste artigo, a primeira parte da série, você:
- Clonar código-fonte do aplicativo do GitHub
- Cria uma imagem de contêiner da origem do aplicativo
- Testa a imagem em um ambiente de Docker local
Nas partes dois e três do tutorial, você carregará sua imagem no Registro de Contêiner do Azure e depois a implantará nas Instâncias de Contêiner do Azure.
Antes de começar
Você deve atender aos seguintes requisitos para concluir este tutorial:
CLI do Azure: você deve ter a CLI do Azure versão 2.0.29 ou posterior instalada no computador local. Para saber qual é a versão, execute az --version
. Se você precisar instalar ou atualizar, confira Instalar a CLI do Azure.
Docker: este tutorial pressupõe uma compreensão básica dos conceitos fundamentais do Docker, como contêineres, imagens de contêineres e comandos básicos do docker
. Para instruções sobre conceitos básicos do Docker e de contêiner, consulte a visão geral do Docker.
Docker: Para concluir este tutorial, você precisa do Docker instalado localmente. O Docker fornece pacotes que configuram o ambiente do Docker no macOS, no Windows e no Linux.
Importante
Como o Azure Cloud Shell não inclui o daemon do Docker, você deve instalar a CLI do Azure e o Mecanismo do Docker em seu computador local para concluir este tutorial. Você não pode usar o Azure Cloud Shell para este tutorial.
Obter o código de aplicativo
O aplicativo de exemplo neste tutorial é um aplicativo Web simples criado no Node.js. O aplicativo serve a uma página HTML estática e é semelhante à captura de tela a seguir:
Use o Git para clonar o repositório do aplicativo de exemplo:
git clone https://github.com/Azure-Samples/aci-helloworld.git
Também é possível baixar o arquivo ZIP do GitHub diretamente.
Criar a imagem de contêiner
O Dockerfile no aplicativo de exemplo mostra como o contêiner é criado. Ele inicia de uma imagem oficial do Node.js com base no Alpine Linux, uma distribuição pequena que é adequada para uso com contêineres. Em seguida, ele copia os arquivos do aplicativo para o contêiner, instala dependências usando o Gerenciador de Pacotes do Node e inicia o aplicativo.
FROM node:8.9.3-alpine
RUN mkdir -p /usr/src/app
COPY ./app/* /usr/src/app/
WORKDIR /usr/src/app
RUN npm install
CMD node /usr/src/app/index.js
Use o comando docker build para criar a imagem de contêiner e marque-o como aci-tutorial-app:
docker build ./aci-helloworld -t aci-tutorial-app
A saída do comando docker build é semelhante ao seguinte (truncado para legibilidade):
docker build ./aci-helloworld -t aci-tutorial-app
Sending build context to Docker daemon 119.3kB
Step 1/6 : FROM node:8.9.3-alpine
8.9.3-alpine: Pulling from library/node
88286f41530e: Pull complete
84f3a4bf8410: Pull complete
d0d9b2214720: Pull complete
Digest: sha256:c73277ccc763752b42bb2400d1aaecb4e3d32e3a9dbedd0e49885c71bea07354
Status: Downloaded newer image for node:8.9.3-alpine
---> 90f5ee24bee2
...
Step 6/6 : CMD node /usr/src/app/index.js
---> Running in f4a1ea099eec
---> 6edad76d09e9
Removing intermediate container f4a1ea099eec
Successfully built 6edad76d09e9
Successfully tagged aci-tutorial-app:latest
Use o comando docker images para ver a imagem interna:
docker images
Sua imagem recém-criada deve aparecer na lista:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 seconds ago 68.1 MB
Executar o contêiner localmente
Antes de tentar implantar o contêiner nas Instâncias de Contêiner do Azure, use docker run para executá-lo localmente e confirmar se ele funciona. A opção -d
permite que o contêiner seja executado em segundo plano, enquanto -p
permite mapear uma porta aleatória em seu computador para a porta 80 no contêiner.
docker run -d -p 8080:80 aci-tutorial-app
A saída do comando docker run
exibe a identificação do contêiner em execução se o comando teve êxito:
docker run -d -p 8080:80 aci-tutorial-app
```output
a2e3e4435db58ab0c664ce521854c2e1a1bda88c9cf2fcff46aedf48df86cccf
Agora, navegue para http://localhost:8080
no navegador para confirmar que o contêiner está sendo executado. Você deverá ver uma página da Web semelhante à seguinte captura de tela:
Próximas etapas
Neste tutorial, você criou uma imagem de contêiner que pode ser implantada nas Instâncias de Contêiner do Azure e verificou se ela é executada localmente. Até agora, você concluiu as seguintes etapas:
- A fonte do aplicativo foi clonada do GitHub
- Uma imagem de contêiner da origem do aplicativo foi criada
- O contêiner foi testado localmente
Siga para o próximo tutorial da série para saber mais sobre como armazenar imagens de contêiner em um Registro de Contêiner do Azure: