Exercício – Enviar por push 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 local do qual obtê-la. O Docker Hub é um local central para carregar imagens do Docker. Muitos produtos, inclusive o Kubernetes, podem criar contêineres com base em imagens no Docker Hub.

Observação

Você irá realizar esse exercício em um Codespace do GitHub com 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.

Abrir o ambiente de desenvolvimento

Você pode optar por usar um codespace do GitHub que hospeda o exercício ou concluí-lo localmente no Visual Studio Code.

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

Este processo levará alguns minutos enquanto o GitHub cria e configura o codespace. Depois de concluído, o código utilizado para o restante desse módulo está no diretório dotnet-kubernetes.

Para usar o Visual Studio Code, clone o repositório https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative em seu computador local. Em seguida:

  1. Instale todos os requisitos do sistema para executar o Contêiner de Desenvolvimento no Visual Studio Code.
  2. Confira 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: Recompilar e Reabrir no Contêiner
  6. Selecione eShopLite – dotnet-kubernetes na lista suspensa. O Visual Studio Code cria seu contêiner de desenvolvimento localmente.

Verificar as imagens do Docker criando contêineres no codespace

Existem dois contêineres no projeto da Contoso Shop. Antes de enviar as imagens para o Docker Hub, vamos usá-las para criar os contêineres no codespace. Após os contêineres terem sido criados e estarem em execução, poderemos navegar no site da empresa Contoso e verificar se os microsserviços estão sendo executados corretamente.

Siga essas etapas para criar e executar contêineres do Docker no codespace.

  1. Alterne para a guia 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
    

    Poderá levar algum tempo para os contêineres serem criados.

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

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

  5. Selecione Produtos. O catálogo mostra os produtos da Contoso.

  6. Feche o site da Web, retorne à guia TERMINAL e, a seguir, pressione CTRL + C. O Docker Compose para os contêineres.

Entrar no Docker Hub

A próxima etapa ao carregar as imagens para o Docker Hub é entrar nele. No prompt de comando, insira o seguinte:

docker login

Importante

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

Fazer upload das imagens para o Docker Hub

  1. Insira o código a seguir para remarcar ou renomear as imagens do Docker criadas 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. Por fim, 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 se autenticar novamente.

Nesse exercício, você usou o Dockerfiles e o Docker Compose para criar duas imagens e contêineres do Docker e enviou essas imagens por push para o Docker Hub.

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