Exercício – obter uma imagem do Docker existente e implementá-la localmente
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
Inicie o Docker no seu computador.
Abra uma janela da linha de comandos no seu computador local.
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:aspnetappInsira o código a seguir para verificar se a imagem foi armazenada localmente.
docker image lsVocê deve ver um repositório chamado mcr.microsoft.com/dotnet/samples com uma tag de aspnetapp.
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. Opsinalizador é 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:aspnetappAbra 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:
Examinar o contentor no registo local do Docker
No prompt de comando, execute o seguinte comando para exibir os contêineres em execução no registro local.
docker psO 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_montalciniO 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.
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>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 -aNo 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
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>Verifique se o contêiner foi removido executando o seguinte comando. O comando já não deverá listar o contentor.
docker ps -aListe as imagens atualmente disponíveis no seu computador. A saída deve mostrar o repositório de amostras.
docker image lsRemova a imagem do registo.
docker image rm mcr.microsoft.com/dotnet/samples:aspnetappA 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