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 as aplicações da empresa, decide tentar executar uma imagem de exemplo do Hub do Docker. A imagem selecionada implementa um aplicativo Web .NET Core ASP.NET básico. Assim que tiver estabelecido um processo para implementar uma imagem do Docker, conseguirá executar uma das aplicações Web da sua empresa através do Docker.

Neste exercício, irá solicitar uma imagem do Hub do Docker e executá-la. Irá verificar o estado local do Docker para ajudar a compreender os elementos que estão implementados. Por fim, irá remover o contentor 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://hub.docker.com/editions/community/docker-ce-desktop-windows/

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 sinalizador -d é para executá-lo como um aplicativo em segundo plano e não interativo. O sinalizador -p é 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 responderá 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 insira a URL do aplicativo Web de exemplo: http://localhost:8080. Você verá uma página parecida com a seguinte captura de tela:

    Screenshot of the sample web app running in a 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 deve ser algo 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 contentor iniciado através da execução do 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 8080 no seu computador. O campo ESTADO indica que a aplicação ainda está em execução. Anote o NOME do contentor.

  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/). A atualização deverá falhar devido ao erro de Ligaçã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