Exercício – obter uma imagem do Docker existente e implementá-la localmente

Concluído

Executar localmente no seu computador uma imagem já existente no Hub do Docker é um bom ponto de partida para criar e executar as suas próprias imagens do Docker.

Como prova de conceito para os aplicativos da empresa, você decide tentar executar uma imagem de exemplo do Docker Hub. A imagem selecionada implementa um aplicativo Web .NET Core ASP.NET básico. Depois de estabelecer um processo para implantar uma imagem do Docker, você poderá executar um dos próprios aplicativos Web da sua empresa usando o Docker.

Neste exercício, você extrai uma imagem do Docker Hub e a executa. Você examina o estado local do Docker para ajudar a entender os elementos que são implantados. Finalmente, você remove o contêiner e a imagem do seu computador.

Importante

Este exercício é realizado no seu computador e não no Azure. Precisará de uma instalação local do Docker para avançar com o exercício. Transfira: https://docs.docker.com/desktop/install/windows-install/

Solicitar e executar uma aplicação de exemplo do Hub do Docker

  1. Inicie o Docker no seu computador.

  2. Abra uma janela da linha de comandos no seu computador local.

  3. Insira o código a seguir para extrair a imagem do aplicativo de exemplo ASP.NET do registro do Docker Hub. Esta imagem contém um aplicativo Web de exemplo desenvolvido pela Microsoft e é baseada 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 uma tag de aspnetapp.

  5. Insira o código a seguir para iniciar o aplicativo de exemplo. O parâmetro -d é para executar em segundo plano, como um aplicativo não interativo. O p sinalizador é mapear a porta 8080 no contêiner criado para a porta 8080 localmente. Esta definição destina-se a evitar conflitos com quaisquer aplicações Web já em execução no seu computador. O comando responde com um identificador hexadecimal longo para a instância.

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

    Captura de ecrã da aplicação Web de exemplo em execução num browser.

Examinar o contentor no registo local do Docker

  1. No prompt de comando, execute o seguinte comando para exibir os contêineres em execução no registro local.

    docker ps
    

    O resultado deverá ter um aspeto semelhante ao seguinte exemplo:

    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 COMMAND mostra o contêiner iniciado executando o comando dotnet aspnetapp.dll. Este comando invoca o runtime de .NET Core para iniciar o código em aspnetapp.dll (o código da aplicação Web de exemplo). O campo PORTS indica que a porta 8080 na imagem foi mapeada para a porta 80 no seu computador. O campo STATUS mostra que o aplicativo ainda está em execução. Anote o NOME do contêiner.

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

    docker container stop <NAME>
    
  3. Execute o seguinte comando 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 contêineres 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/). Ele deve falhar com um erro de conexão recusada .

Remover o contentor e a imagem do registo local

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

    docker container rm <NAME>
    
  2. Verifique se o contêiner foi removido executando o seguinte comando. O comando já não deverá listar o contentor.

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

    docker image ls
    
  4. Remova a imagem do registo.

    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 seguinte comando para listar as imagens novamente e verificar se a imagem do aplicativo Web microsoft/dotnet-samples desapareceu.

    docker image ls