Comment utiliser la commande docker desktop engine use pour changer de type de conteneur

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce lab, vous apprendrez à utiliser la commande docker desktop engine use pour basculer entre différents types de conteneurs. Vous commencerez par comprendre l'utilité du moteur Docker (Docker engine) et comment vérifier le type de conteneur actuel.

Ensuite, vous explorerez comment passer aux conteneurs Windows (sur les systèmes Windows) puis revenir aux conteneurs Linux. Ce lab vous offrira une expérience pratique de gestion des environnements de conteneurs en utilisant l'interface CLI de Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") subgraph Lab Skills docker/run -.-> lab-555142{{"Comment utiliser la commande docker desktop engine use pour changer de type de conteneur"}} docker/pull -.-> lab-555142{{"Comment utiliser la commande docker desktop engine use pour changer de type de conteneur"}} docker/info -.-> lab-555142{{"Comment utiliser la commande docker desktop engine use pour changer de type de conteneur"}} end

Comprendre l'utilité de docker desktop engine use

Dans cette étape, nous allons comprendre le rôle du moteur Docker. Docker est une plateforme qui permet d'automatiser le déploiement, la mise à l'échelle et la gestion d'applications grâce à la conteneurisation. Un conteneur est une unité logicielle standard qui empaquète du code avec toutes ses dépendances, permettant à l'application de s'exécuter rapidement et de manière fiable d'un environnement informatique à un autre.

Le moteur Docker est le composant central de Docker. Il s'agit d'une application client-serveur comprenant ces éléments principaux :

  • Un serveur qui est un programme de longue durée appelé processus démon (la commande dockerd).
  • Une API REST qui définit les interfaces permettant aux programmes de communiquer avec le démon et de lui donner des instructions.
  • Un client d'interface en ligne de commande (CLI, la commande docker).

Le CLI utilise l'API REST pour contrôler le démon Docker via des scripts ou des commandes CLI directes. De nombreuses autres applications Docker utilisent l'API sous-jacente et le CLI.

Dans l'environnement LabEx, le moteur Docker est déjà installé et en cours d'exécution. Vous pouvez le vérifier en exécutant la commande docker info. Cette commande affiche des informations système concernant l'installation Docker.

docker info

Vous devriez voir une sortie similaire à celle-ci, montrant des détails sur la version de Docker, le pilote de stockage et d'autres informations.

Client:
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.9
 Git commit:        baeda1f
 Built:             Tue Oct 25 18:01:17 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.9
  Git commit:       305620d
  Built:            Tue Oct 25 17:59:50 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.10
  GitCommit:        b34a5c8e5367b9d7e345e9371193898cdce23f40
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
 ... (plus de sortie)

Cette sortie confirme que le moteur Docker est en cours d'exécution et fournit des détails sur sa configuration. Comprendre le moteur Docker est la première étape pour travailler avec des conteneurs.

Vérifier le type de conteneur actuel

Dans cette étape, nous allons vérifier le type de conteneur actuellement pris en charge par le moteur Docker dans l'environnement LabEx. Docker peut exécuter différents types de conteneurs selon le système d'exploitation sous-jacent. Sous Linux, Docker exécute principalement des conteneurs Linux. Sous Windows, Docker Desktop permet de basculer entre les conteneurs Linux et Windows.

Dans l'environnement LabEx, vous utilisez une machine virtuelle Linux. Par conséquent, le moteur Docker est configuré pour exécuter des conteneurs Linux. Vous pouvez le confirmer en examinant à nouveau la sortie de la commande docker info. Recherchez le champ OSType.

docker info

Dans la sortie, vous devriez voir une ligne similaire à celle-ci :

OSType: linux

Cela indique que le moteur Docker est actuellement configuré pour exécuter des conteneurs Linux. C'est le comportement par défaut et attendu sur un système Linux.

Pour illustrer davantage, essayons d'exécuter un simple conteneur Linux. Nous utiliserons l'image hello-world, une image très légère qui affiche simplement un message avant de se terminer. Tout d'abord, nous devons récupérer l'image localement.

docker pull hello-world

Vous devriez voir une sortie indiquant que l'image est en cours de téléchargement.

Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:f5233545e4356188889a389e18b407cd9f61f46056b1e172b338cd91f09e9e4c
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Maintenant, exécutez le conteneur avec la commande docker run.

docker run hello-world

Vous devriez voir une sortie similaire à celle-ci, qui correspond au message affiché par le conteneur hello-world.

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub
    (assuming it was not already locally available).
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Cela confirme que vous pouvez exécuter avec succès des conteneurs Linux dans cet environnement.

Basculer vers les conteneurs Windows (Windows uniquement)

Dans cette étape, nous aborderons le passage aux conteneurs Windows. Veuillez noter que cette étape ne s'applique que si vous utilisez Docker Desktop sur un système d'exploitation Windows. L'environnement LabEx étant une machine virtuelle Linux, vous ne pouvez pas effectuer cette bascule ici. Cependant, comprendre ce concept est important si vous travaillez avec Docker sous Windows.

Sous Windows, Docker Desktop exécute par défaut une petite machine virtuelle Linux pour héberger le moteur Docker et exécuter des conteneurs Linux. Cela s'explique par le fait que le moteur Docker a été initialement conçu pour Linux. Cependant, Windows prend également en charge l'exécution de conteneurs Windows natifs.

Si vous étiez sur une machine Windows avec Docker Desktop installé, vous pourriez basculer vers les conteneurs Windows en cliquant droit sur l'icône Docker dans la barre système et en sélectionnant "Switch to Windows containers". Cette action reconfigurerait le démon Docker pour utiliser l'environnement d'exécution Windows au lieu de la machine virtuelle Linux.

Une fois basculé vers les conteneurs Windows, vous pourriez alors télécharger et exécuter des images conçues pour Windows, comme mcr.microsoft.com/windows/nanoserver.

Par exemple, sur une machine Windows après la bascule, vous pourriez exécuter :

docker pull mcr.microsoft.com/windows/nanoserver
docker run mcr.microsoft.com/windows/nanoserver cmd /c echo Hello from Windows Container!

La sortie serait :

Hello from Windows Container!

Étant dans un environnement Linux, toute tentative de téléchargement ou d'exécution d'images Windows échouera. Le moteur Docker dans cette machine virtuelle Linux n'est pas capable d'exécuter des conteneurs Windows.

Illustrons cela en essayant de télécharger une image Windows.

docker pull mcr.microsoft.com/windows/nanoserver

Vous verrez probablement un message d'erreur indiquant que l'image est introuvable ou ne peut pas être téléchargée, car le démon Docker recherche une image Linux avec ce nom.

Using default tag: latest
Error response from daemon: manifest for mcr.microsoft.com/windows/nanoserver:latest not found: manifest unknown: manifest unknown

Cela confirme que l'environnement actuel est configuré pour les conteneurs Linux et ne peut pas exécuter de conteneurs Windows.

Par conséquent, il n'y a pas de commandes pratiques à exécuter dans cet environnement LabEx pour basculer vers les conteneurs Windows. Cette étape fournit des informations conceptuelles pour les utilisateurs amenés à travailler avec Docker sous Windows.

Rebasculer vers les conteneurs Linux (Windows uniquement)

Dans cette étape, nous allons expliquer comment revenir aux conteneurs Linux. Comme pour l'étape précédente, ceci ne concerne que les utilisateurs de Docker Desktop sous Windows. Dans l'environnement Linux LabEx, vous utilisez déjà des conteneurs Linux, donc aucune action n'est requise pour rebasculer.

Sur une machine Windows où vous auriez précédemment basculé vers les conteneurs Windows, vous pourriez revenir aux conteneurs Linux en cliquant droit sur l'icône Docker dans la barre système et en sélectionnant "Switch to Linux containers". Cette action arrêterait l'environnement d'exécution Windows et redémarrerait la machine virtuelle Linux hébergeant le moteur Docker pour les conteneurs Linux.

Après être revenu aux conteneurs Linux sur une machine Windows, vous pourriez à nouveau télécharger et exécuter des images Linux, comme l'image ubuntu.

Par exemple, sur une machine Windows après le retour aux conteneurs Linux, vous pourriez exécuter :

docker pull ubuntu
docker run ubuntu echo Hello from Linux Container!

La sortie serait :

Hello from Linux Container!

Étant dans un environnement Linux, vous utilisez déjà des conteneurs Linux. Vous pouvez le confirmer à nouveau en vérifiant le champ OSType dans la sortie de docker info.

docker info

Comme vu à l'Étape 2, la sortie affichera :

OSType: linux

Cela confirme que le moteur Docker dans cet environnement LabEx est configuré pour exécuter des conteneurs Linux, et qu'aucune action n'est nécessaire pour rebasculer.

Par conséquent, il n'y a pas de commandes pratiques à exécuter dans cet environnement LabEx pour revenir aux conteneurs Linux. Cette étape, comme la précédente, fournit des informations conceptuelles pour les utilisateurs amenés à travailler avec Docker sous Windows.

Résumé

Dans ce labo, nous avons commencé par comprendre le rôle du moteur Docker, qui est le composant principal de la plateforme Docker pour la conteneurisation. Nous avons appris que le moteur Docker se compose d'un démon, d'une API REST et d'une interface en ligne de commande (CLI). Nous avons vérifié l'installation de Docker et son état de fonctionnement à l'aide de la commande docker info, qui a fourni des informations détaillées sur l'environnement Docker à l'échelle du système.

Après cette première compréhension, nous avons vérifié le type de conteneur actuellement utilisé par le moteur Docker. Pour les utilisateurs Windows, le labo nous a ensuite guidés à travers le processus de basculement vers les conteneurs Windows puis de retour aux conteneurs Linux, démontrant ainsi comment gérer différents environnements de conteneurs dans Docker Desktop.