Compartilhar via


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. Execute az --version para encontrar a versão. 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:

Aplicativo de tutorial mostrado no navegador

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ê verá uma página da Web semelhante à seguinte:

Executando o aplicativo localmente no navegador

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, foi feito o seguinte:

  • 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: