Exercício - Enviar uma imagem de microsserviço para o Docker Hub

Concluído

Para que o Kubernetes crie uma imagem de contêiner, ele precisa de um lugar para obtê-la. O Docker Hub é um local central para carregar imagens do Docker. Muitos produtos, incluindo o Kubernetes, podem criar contêineres com base em imagens no Docker Hub.

Nota

Você concluirá este exercício em um espaço de código do GitHub que tenha o Docker e o SDK do .NET pré-instalados. Ao usar essas técnicas em seu próprio ambiente de desenvolvimento, certifique-se de ter esses pré-requisitos instalados.

Abra o ambiente de desenvolvimento

Você pode optar por usar um espaço de código GitHub que hospeda o exercício ou concluí-lo localmente no Visual Studio Code.

Para usar um codespace, crie um Codespace GitHub pré-configurado com este link de criação do Codespace.

O processo leva vários minutos enquanto o GitHub cria e configura o espaço de código. Uma vez concluído, o código usado para o resto deste módulo está no diretório /dotnet-kubernetes .

Para usar o Visual Studio Code, clone o https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative repositório para sua máquina local. Em seguida:

  1. Instale quaisquer requisitos do sistema para executar o Dev Container no Visual Studio Code.
  2. Verifique se o Docker está em execução.
  3. Em uma nova janela do Visual Studio Code, abra a pasta do repositório clonado
  4. Pressione Ctrl+Shift+P para abrir a paleta de comandos.
  5. Pesquisa: >Contêineres de desenvolvimento: reconstruir e reabrir no contêiner
  6. Selecione eShopLite - dotnet-kubernetes na lista suspensa. O Visual Studio Code cria seu contêiner de desenvolvimento localmente.

Verifique as imagens do Docker criando contêineres no espaço de código

Há dois contêineres no projeto Contoso Shop. Antes de enviar as imagens para o Docker Hub, vamos usá-las para criar os contêineres no espaço de código. Depois que os contêineres forem criados e executados, poderemos navegar no site da empresa Contoso e verificar se os microsserviços estão sendo executados OK.

Siga estas etapas para criar e executar contêineres do Docker no espaço de código.

  1. Mude para o separador TERMINAL e execute o seguinte comando para ir para a raiz do código:

    cd dotnet-kubernetes
    
  2. Execute o seguinte comando para criar os contêineres:

    dotnet publish /p:PublishProfile=DefaultContainer
    

    Pode demorar um pouco para construir os contêineres.

  3. Execute o seguinte comando para executar o aplicativo e anexar os contêineres:

    docker compose up
    
  4. Para testar o serviço front-end, alterne para a guia PORTAS e, em seguida, à direita do endereço local da porta Front-End , selecione o ícone de globo. O navegador exibe a página inicial.

  5. Selecione Produtos. O catálogo mostra a mercadoria da Contoso.

  6. Feche o Web site, regresse ao separador TERMINAL e, em seguida, prima CTRL + C. A composição do Docker interrompe os contêineres.

Faça login no Docker Hub

A próxima etapa para carregar as imagens no Docker Hub é fazer login no Docker Hub. No prompt de comando, digite o seguinte:

docker login

Importante

Use o mesmo nome de usuário e senha de quando você criou sua conta do Docker. Você pode visitar o site do Docker Hub para redefinir sua senha, se necessário.

Carregue as imagens no Docker Hub

  1. Insira o código a seguir para remarcar ou renomear as imagens do Docker que você criou sob seu nome de usuário do Docker.

    docker tag store [YOUR DOCKER USER NAME]/storeimage
    docker tag products [YOUR DOCKER USER NAME]/productservice
    
  2. Em seguida, finalmente, carregue ou envie por push as imagens do Docker para o Docker Hub.

    docker push [YOUR DOCKER USER NAME]/storeimage
    docker push [YOUR DOCKER USER NAME]/productservice
    

    Se você receber um erro de autenticação, poderá executar docker logout seguido de docker login para autenticar novamente.

Neste exercício, você usou Dockerfiles e docker compose para criar duas imagens e contêineres do Docker e enviou essas imagens para o Docker Hub.

Agora, você está pronto para usar o Kubernetes para gerenciar a implantação de microsserviços da Contoso.