Exercício – Recuperar uma imagem existente do Docker e implantá-la localmente

Concluído

Um bom ponto de partida para criar e executar suas imagens do Docker é usar uma imagem existente do Hub do Docker e executá-la localmente no computador.

Como uma prova de conceito para os aplicativos da empresa, você decide tentar executar uma imagem de exemplo do Docker Hub. A imagem que você selecionou implementa um aplicativo Web ASP.NET básico do .NET Core. Após estabelecer o processo de implantação da imagem do Docker, você poderá executar um dos aplicativos Web da empresa usando o Docker.

Neste exercício, você efetuará pull de uma imagem do Hub do Docker e a executará. Você examinará o estado local do Docker para ajudar a entender os elementos implantados. Por fim, você removerá o contêiner e a imagem do computador.

Importante

Este exercício será feito no seu computador, e não no Azure. Você precisa de uma instalação local do Docker para prosseguir com o exercício. Baixar: https://docs.docker.com/desktop/install/windows-install/

Efetuar pull e executar um aplicativo de exemplo do Hub do Docker

  1. Inicie o Docker no computador.

  2. Abra uma janela do prompt de comando no computador local.

  3. Insira o código a seguir para efetuar pull da imagem do aplicativo ASP.NET de exemplo do registro do Docker Hub. Esta imagem contém um aplicativo Web de exemplo desenvolvido pela Microsoft que é baseado no modelo de ASP.NET padrão disponível no Visual Studio.

    docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
    
  4. Insira o código a seguir para verificar se a imagem foi armazenada localmente.

    docker image ls
    

    Você deve ver um repositório chamado mcr.microsoft.com/dotnet/samples com a marca aspnetapp.

  5. Insira o código a seguir para iniciar o aplicativo de exemplo. O sinalizador -d especifica a execução em segundo plano como um aplicativo não interativo. O sinalizador -p é mapear a porta 8080 no contêiner criado para a porta 8080 localmente. Essa configuração destina-se a evitar conflitos com qualquer aplicativo Web já em execução no computador. O comando responderá com um longo identificador hexadecimal para a instância.

    docker run -d -p 8080:8080 mcr.microsoft.com/dotnet/samples:aspnetapp
    
  6. Abra um navegador da Web e insira a URL para o aplicativo Web de exemplo: http://localhost:8080. Você deve ver uma página parecida com a captura de tela a seguir:

    Captura de tela do aplicativo Web de exemplo em execução em um navegador.

Examinar o contêiner no registro do Docker local

  1. No prompt de comando, execute o comando a seguir para ver os contêineres em execução no Registro local.

    docker ps
    

    O resultado deve ser semelhante ao seguinte:

    CONTAINER ID   IMAGE                                             COMMAND                  CREATED          STATUS          PORTS                  NAMES
    96c851831ade   mcr.microsoft.com/dotnet/samples:aspnetapp   "dotnet aspnetapp.dll"   22 minutes ago   Up 22 minutes   0.0.0.0:8080->80/tcp   eager_montalcini
    

    O campo COMANDO mostra o contêiner iniciado ao executar o comando dotnet aspnetapp.dll. Esse comando invoca o runtime do .NET Core para iniciar o código no aspnetapp.dll (o código para o aplicativo Web de exemplo). O campo PORTAS indica que a porta 8080 na imagem foi mapeada para a porta 8080 no computador. O campo STATUS mostra que o aplicativo ainda está em execução. Anote o NOME do contêiner.

  2. Execute o comando a seguir para interromper o contêiner do Docker, substituindo o espaço reservado <NAME> pelo nome da saída do comando anterior.

    docker container stop <NAME>
    
  3. Execute o comando a seguir para verificar se o contêiner não está mais em execução. O sinalizador -a indica que o comando mostra o status de todos os contêineres, não apenas dos que ainda estão em execução. A saída deve mostrar o STATUS do contêiner como Encerrado.

    docker ps -a
    
  4. No navegador da Web, atualize a página do aplicativo Web de exemplo (http://localhost:8080/). Ocorrerá uma falha com o erro Conexão recusada.

Remover o contêiner e a imagem do registro local

  1. Embora o contêiner tenha sido interrompido, ainda está carregado e pode ser reiniciado. Execute o comando a seguir na janela de prompt de comando para removê-lo, substituindo o espaço reservado <NAME> pelo nome do contêiner.

    docker container rm <NAME>
    
  2. Verifique se o contêiner foi removido executando o comando a seguir. O comando não deve mais listar o contêiner.

    docker ps -a
    
  3. Liste as imagens disponíveis no computador no momento. A saída deve mostrar o repositório de exemplos.

    docker image ls
    
  4. Remova a imagem do registro.

    docker image rm mcr.microsoft.com/dotnet/samples:aspnetapp
    
  5. A saída deve listar vários itens que foram desmarcados e excluídos. Execute o comando a seguir para listar as imagens novamente e verificar se a imagem do aplicativo Web microsoft/dotnet-samples desapareceu.

    docker image ls