Exercice : Récupérer une image Docker existante et la déployer localement

Effectué

Un bon point de départ pour générer et exécuter vos propres images Docker consiste à prendre une image existante dans Docker Hub et à l’exécuter localement sur votre ordinateur.

Comme preuve de concept pour les applications de l’entreprise, vous décidez d’essayer d’exécuter un exemple d’image à partir de Docker Hub. L’image que vous avez sélectionnée implémente une application web ASP.NET .NET Core de base. Une fois que vous avez établi un processus pour le déploiement d’une image Docker, vous pouvez exécuter une des applications web de votre entreprise à l’aide de Docker.

Dans cet exercice, vous allez tirer une image de Docker Hub et l’exécuter. Vous allez examiner l’état local de Docker pour mieux comprendre les éléments qui sont déployés. Enfin, vous allez supprimer le conteneur et l’image de votre ordinateur.

Important

Cet exercice se déroule sur votre ordinateur, pas dans Azure. Vous avez besoin d’une installation locale de Docker pour poursuivre l’exercice. Téléchargement : https://hub.docker.com/editions/community/docker-ce-desktop-windows/

Tirer un exemple d’application de Docker Hub et l’exécuter

  1. Démarrez Docker sur votre ordinateur.

  2. Ouvrez une fenêtre d’invite de commandes sur votre ordinateur local.

  3. Entrez le code suivant pour tirer l’image d’application ASP.NET Sample du registre Docker Hub. Cette image contient un exemple d’application web développé par Microsoft et est basée sur le modèle ASP.NET par défaut disponible dans Visual Studio.

    docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
    
  4. Entrez le code suivant pour vérifier que l’image a été stockée localement.

    docker image ls
    

    Vous devez voir un dépôt nommé mcr.microsoft.com/dotnet/samples avec l’étiquette aspnetapp.

  5. Entrez le code suivant pour démarrer l’exemple d’application. L’indicateur -d sert à l’exécuter en tant qu’application non interactive en arrière-plan. L’indicateur -p consiste à mapper le port 8080 dans le conteneur créé au port 8080 localement. Ce paramètre est destiné à éviter les conflits avec les applications web déjà en cours d’exécution sur votre ordinateur. La commande répond avec un long identificateur hexadécimal pour l’instance.

    docker run -d -p 8080:8080 mcr.microsoft.com/dotnet/samples:aspnetapp
    
  6. Ouvrez un navigateur web et entrez l’URL de l’exemple d’application web : http://localhost:8080. Vous devriez voir une page semblable à la capture d’écran suivante :

    Screenshot of the sample web app running in a browser.

Examiner le conteneur dans le registre Docker local

  1. À l’invite de commandes, exécutez la commande suivante pour afficher les conteneurs en cours d’exécution dans le registre local.

    docker ps
    

    Le résultat doit être semblable à ce qui suit :

    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
    

    Le champ COMMAND indique le conteneur démarré à l’aide de la commande dotnet aspnetapp.dll. Cette commande appelle le runtime .NET Core pour démarrer le code dans le fichier aspnetapp.dll (le code de l’exemple d’application web). Le champ PORTS indique que le port 8080 dans l’image a été mappé au port 8080 sur votre ordinateur. Le champ STATUS indique que l’application est toujours en cours d’exécution. Notez le nom (NAME) du conteneur.

  2. Exécutez la commande suivante pour arrêter le conteneur Docker, en remplaçant l’espace réservé <NAME> par le nom de sortie de la commande précédente.

    docker container stop <NAME>
    
  3. Exécutez la commande suivante pour vérifier que le conteneur n’est plus en cours d’exécution. L’indicateur -a indique que la commande affiche l’état de tous les conteneurs, pas uniquement ceux qui sont en cours d’exécution. La sortie doit indiquer l’ÉTAT du conteneur comme Quitté.

    docker ps -a
    
  4. Dans votre navigateur web, actualisez la page de l’exemple d’application web (http://localhost:8080/). Elle doit échouer avec une erreur Connection Refused (Connexion refusée).

Supprimer le conteneur et l’image du registre local

  1. Bien que le conteneur se soit arrêté, il est toujours chargé et peut être redémarré. Exécutez la commande suivante dans la fenêtre d’invite de commandes pour le supprimer, en remplaçant l’espace réservé <NAME> par le nom de votre conteneur.

    docker container rm <NAME>
    
  2. Vérifiez que le conteneur a été supprimé en exécutant la commande suivante. La commande ne doit plus lister le conteneur.

    docker ps -a
    
  3. Listez les images disponibles sur votre ordinateur. La sortie devrait montrer le dépôt d’exemples.

    docker image ls
    
  4. Supprimer l’image du registre.

    docker image rm mcr.microsoft.com/dotnet/samples:aspnetapp
    
  5. La sortie devrait lister de nombreux éléments qui ont été supprimés, ainsi que leurs étiquettes. Exécutez la commande suivante pour relister les images et vérifier que l’image de l’application web microsoft/dotnet-samples a disparu.

    docker image ls