Exercício – Recuperar uma imagem existente do Docker e implantá-la localmente
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
Inicie o Docker no computador.
Abra uma janela do prompt de comando no computador local.
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
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.
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
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:
Examinar o contêiner no registro do Docker local
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.
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>
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
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
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>
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
Liste as imagens disponíveis no computador no momento. A saída deve mostrar o repositório de exemplos.
docker image ls
Remova a imagem do registro.
docker image rm mcr.microsoft.com/dotnet/samples:aspnetapp
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