Tut's MS Windows

[Windows 10] Installer Docker et lancement d’un conteneur Windows

Depuis l’arrivée de Windows 10, vous pouvez désormais utiliser la virtualisation par conteneur : les conteneurs docker !

Mise à jour au 05/08/2017

Entre les machines virtuelles et les conteneurs, la virtualisation a de beaux jours devant elle. Sous les systèmes Microsoft, vous pouvez utiliser le vénérable Hyper-V ou d’autres outils comme VMware Workstation. Dès à présent, Docker est aussi là, à la rescousse !
L’installation ne se fera pas avec le logiciel Docker fournit sur le site officiel – il s’agit là d’un package en archive conçue pour Windows 10 et Windows Server.

Note : L’article est issue en grande partie d’un combo de deux documentations, entre celle de Microsoft et celle de Docker.


0. Etape préliminaire

Toutes les commandes pour l’installation mais aussi l’exploitation des conteneurs sur Windows doit être impérativement être saisies dans Powershell en mode Administrateur. Sans quoi, les commandes risquent de ne pas s’exécuter et vous risquez d’être bloqué par la suite.

Avant de se lancer dans cette nouvelle aventures basée sur des conteneurs, il faut auparavant installer les  fonctionnalités nécessaires au bon fonctionnement du système. Deux options sont à mettre en place, Hyper-V et les conteneurs.

PS : L’installation d’Hyper-V est nécessaire, les conteneurs se basent indirectement sur la technologie de virtualisation d’Hyper-V pour Windows. Je détaillerai dans un autre article le pourquoi du comment.

Lorsque l’installation est terminée, il faut redémarrer l’ordinateur, sans quoi vous ne pourrez pas aller plus loin dans la procédure.


I. Installation de Docker pour Windows

La partie préparation / préliminaire est terminée, l’installation de Docker peut être initiée. Il faut récupérer les sources depuis le site officiel puis les extraire :

Lorsque les sources sont présentes sur votre machine, l’installation va alors être initiée avec la commande ci-dessous :

Enfin, pour que la commande « docker » puisse être utilisée dans Powershell sans encombre, il faut saisir les variables nécessaires via des deux commandes :

Concrètement, nous ajoutons une variable « docker » à notre environnement pour pouvoir utiliser les commandes via la syntaxe « docker ». Toutes ces commandes seront « passées » dans le dossier où a été extrait l’archive précédemment.

Enfin, la dernière étape va être l’enregistrement du service Docker – étape nécessaire pour que vous puissiez utiliser les conteneurs dès le démarrage de votre machine. La dernière commande vous permet de démarrer ce service et permettre ainsi l’exécution du système.


II. Première utilisation

Nous y voilà enfin ! L’installation et la configuration sont des étapes désormais terminées. Pour vérifier la bonne mise en place du système, effectuez un « docker version » – vous devriez avoir ce genre de retour :

Plutôt pas mal !
Prochaine épreuve, la récupération d’un modèle de conteneur – pour l’exemple, je vais récupérer l’image de Microsoft nommée « Nano Server ».

Pour les plus aguerris, vous remarquerez que les commandes effectuées dans le Docker pour Windows sont les mêmes qu’un Docker traditionnel sous Linux : c’est logique, puisque ce sont les mêmes commandes ! Toutes les commandes que vous connaissez déjà pour Docker seront donc valides – hormis quelques exceptions notables, selon les greffons et les versions spécifique pour Windows.

Le téléchargement des images peut prendre plus ou moins de temps en fonction de votre connexion et du serveur « en face ».
Une fois le transfert terminé, la création de votre premier conteneur sous Windows est réalisable !

Explications :

  • « docker run » : lancement d’un conteneur
  •  » – it  » : cet attribut permet d’avoir un conteneur interactif : juste après la saisie de la commande, le conteneur sera accessible et vous serez « dedans ».
  •  » –name czsCT » : chaque conteneur a un numéro d’identification, un ID. Vous pouvez aussi lui donner un nom (tag) pour savoir plus rapidement et instinctivement à quoi correspond votre conteneur.
  • « microsoft/nanoserver » : il s’agit du modèle sur lequel votre conteneur va se baser – ici, l’image d’un Nano Server.
  • « cmd .exe » : la commande sera lancée immédiatement après le démarrage du conteneur. J’utilise cmd pour montrer que nous sommes correctement dans le conteneur.

En lançant la commande ci-dessus, ma fenêtre Powershell s’est modifiée pour apparaître un CMD, directement de la sorte :

Clairement, le CMD est lancé depuis le conteneur ! Vous pouvez le voir lorsque j’ai saisi la commande « %computername% », qui m’affiche un nom correspondant à l’ID du conteneur. J’ai quitté le conteneur via un « exit » (tout simplement) puis j’ai effectué la commande « docker ps -a » pour afficher la liste de mes conteneurs :

Vous pouvez voir que l’ID du conteneur est bel et bien le « computername » vu plus haut, que ce conteneur va lancer « cmd.exe » à chaque démarrage du conteneur et que nous venons tout juste de le quitter.

Réussite ! 🙂

Pour relancer le conteneur, vous devrez effectuer ces deux commandes :

Il faut en premier démarrer le conteneur puis se connecter dessus en fait un « attach ». Je détaillerai l’utilisation des conteneurs dans un autre article.

En voir plus

9 thoughts on “[Windows 10] Installer Docker et lancement d’un conteneur Windows”

  1. Bonjour,

    Merci pour votre article, j’attends la suite avec impatience.

    Existe-t-il une interface graphique sous Windows pour gérer Docker et ses conteneurs ?

    Merci de votre réponse.

    Cordialement

    1. Bonjour Kit83 🙂
      Beaucoup de choses à faire mais je vais faire au mieux pour continuer la suite d’articles !
      A ma connaissance, il n’y a pas (encore) d’interfaces graphiques pour Docker sous Windows. Ce serait soit dit en passant une excellente idée de projet pour gérer les conteneurs de façon graphique en plus de faire de la ligne de commande.

      1. Merci de ta réponse.

        Je viens de googlelisé rapidement et j’ai trouver un début de réponse.

        Visiblement il existe Kitematic qui est un client graphique qui permet de gérer ses containers Docker : https://kitematic.com/

        Cordialement

        1. Merci pour ton retour !! =)
          Kitematic est encore en alpha pour les OS Windows – pour le moment leur « docker toolbox » permet la création de conteneurs un peu plus simplement qu’en ligne de commande (la toolbox fait les commandes à notre place en gros) mais il n’y a pas encore d’écho sur la GUI. Je testerai ce logiciel, peut-être qu’il nous surprendra !!
          Sinon… En prenant son courage à deux mains, il est certainement probable de réaliser une petite interface rapide, ne serait-ce qu’en PowerShell ! 🙂

  2. Bonjour, et merci pour cet article
    Etant débutant sous Docker, cela m’intéresse de tester et apprendre d’abord sous Windows

    Je signale juste au moment où j’écris, qu’il existe une version plus récente pour installer Docker (version qui changera à son tour ultérieurement) vérifier ici : « https://master.dockerproject.org »

    Donc les 2 commandes ci-dessous seront à adapter à la version correspondante :

    Invoke-WebRequest « https://master.dockerproject.org/windows/x86_64/docker-17.06.0-dev.zip » -OutFile « $env:TEMP\docker-17.06.0-dev.zip » -UseBasicParsing

    Expand-Archive -Path « $env:TEMP\docker-17.06.0-dev.zip » -DestinationPath $env:ProgramFiles

    Résultat de la commande : docker version

    Client:
    Version: 17.06.0-dev
    API version: 1.31
    Go version: go1.8.3
    Git commit: f7b78dc
    Built: Fri Aug 4 23:37:59 2017
    OS/Arch: windows/amd64

    Server:
    Version: 17.06.0-dev
    API version: 1.32 (minimum version 1.24)
    Go version: go1.8.3
    Git commit: cb91286
    Built: Fri Aug 4 23:41:53 2017
    OS/Arch: windows/amd64
    Experimental: false

    jusque là tout va bien 😉

    ensuite lorsque je veux installer nanoserver, il y a une erreur

    docker run -it –name czsCT microsoft/nanoserver cmd.exe

    Résultat :

    Unable to find image ‘microsoft/nanoserver:latest’ locally
    latest: Pulling from microsoft/nanoserver
    bce2fbc256ea: Extracting [==================================================>] 252.7MB/252.7MB
    baa0507b781f: Download complete

    c:\program files\docker\docker.exe: failed to register layer: re-exec error: exit status 1: output: ProcessBaseLayer C:\ProgramData\docker\windowsfilter\c4db7693a2678dbbf89e58bf9fa535053b39fcad7eb282762ef21d4b1ad8049d: Cette opération s’est terminée car le délai d’attente a expiré.
    See ‘c:\program files\docker\docker.exe run –help’.

    j’ai raté quelque chose ? Pouvez vous m’aider
    Merci

    1. Bonjour Brigand,
      Je viens de m’apercevoir qu’en plus, dans l’article, des coquilles s’étaient glissées ! J’en ai profité pour mettre à jour l’article, les photos et les lignes de commandes – merci 🙂
      Concernant votre problème, en prenant vos commandes, je n’ai pas eu l’erreur ni en VM ni sur mon PC fixe.
      Quelques pistes à essayer pour résoudre le problème :
      – stopper et supprimer tous les conteneurs : docker stop $(docker ps -a -q) — docker rm $(docker ps -a -q)
      – stopper et redémarrer le service docker : stop-service docker — start-service docker
      – faire un pull de l’image docker : docker pull microsoft/nanoserver
      – recréer le conteneur et tester : docker run -it –name czsCT microsoft/nanoserver cmd.exe

      J’espère que tout va se mettre en place cette fois ! 🙂
      Bon courage !

  3. Merci pour votre aide,

    malgré les commandes que vous m’avez envoyé, le problème est toujours présent (ps : il n’y a encore aucun conteneurs installé dans Docker)

    j’ai donc pu seulement arrêté et redémarré le service docker

    je m’étais trompé dans mon précédent post, le problème commence déjà à partir de la commande « pull » ci-dessous

    docker pull microsoft/nanoserver (c’est le même message d’erreur avec la commande suivante…)

    cordialement

  4. Je suis débutant et je suis entrain de tester le conteneurs en utilisant Docker pour les déployer. Mais moi je le fais sur Nano server et comme ce dernier est administrable a distance, je le fait en PowerShell.
    Mon problème est que j’ai testé trop d’images est tous s’installe sans problème mais lorsque je lance la commende pour la création des conteneurs. la première étape commence et sa demeure indéfini sans terminer.
    Quelqu’un peut m’aider?
    Merci Pour votre aide

  5. Merci pour cet article. Pour info, en ce 25 septembre 2017, je viens d’installer Docker sur mon Windows10 avec le dernier installeur de Docker : https://download.docker.com/win/edge/Docker%20for%20Windows%20Installer.exe
    Quand on lance cet executable, il fait tout seul certaines des actions manuelles décrites dans votre article :
    – il ajoute Docker au PATH
    – il crée le service Windows « Docker for Windows Service » et le démarre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close