Explorons la Beta de Docker for Windows!

Comme beaucoup d'entre vous le savent déjà, Microsoft participe activement au développement de Docker ainsi qu'au portage de la technologie de conteneurisation sur son OS. Beaucoup d'efforts ont été fournis pour apporter la technologie nativement à Windows Server telle qu'elle existe dans le monde Linux avec LXC par exemple.

Windows 10 n'est pas en reste car il y a un mois, Patrick Chanezon, ancien Technical Evangelist Microsoft et aujourd'hui Member of Technical Staff à Docker, annonçait la sortie de Docker pour Windows et Mac qui est une application Windows fournissant un environnement Docker prêt à l'emploi !

L'application est téléchargeable ici: Docker for Windows (Beta), vous aurez besoin d'un code d'accès pour installer la beta. C'est ici que vous pouvez soumettre votre demande.

Avant d'installer et d'explorer ce nouvel environnement, faisons un rappel des différents outils pour Docker et comment ils ont évolué au fil du temps.

Évolution de l'outillage de Docker sur Windows

  1. Le pionnier Boot2Docker

    Boot2Docker a commencé par offrir un environnement Docker packagé pour Mac et Windows.

    Bâti sur la distribution Tiny Core Linux et faisant tourner une VM VirtualBox Headless, la Boot2Docker VM était une solution clé en main, pratique et plutôt légère avec une image de 27MB.

    Imgur

  2. Le bundle de la Docker Toolbox
    Imgur

    Docker s'est entre-temps muni d'un nouvel outil : Docker-machine. Avec docker-machine, on pouvait désormais provisionner des hôtes Docker locaux ou dans le cloud par le biais d'un driver, comme par exemple avec la commande $ docker-machine create --driver hyperv dev.

    Docker a donc décidé de partir de l'iso de boot2docker pour intégrer un environnement packagé dans sa Docker Toolbox. Le bundle vient avec docker-compose, docker-machine et Kitematic (GUI pour Docker). Cette solution a l'avantage d'être flexible et le fait de pouvoir créer plusieurs hôtes Docker a facilité les tests de cluster.

    La gestion des machines a été simplifiée avec la création d'un hôte par défaut (default), et la possibilité d'accéder aux fichiers à l'adresse C:\Users\[User]\.docker\machine\machines

Avec Docker For Windows, on retrouve une solution similaire à la Docker Toolbox mais quelques différences sont à noter et pour ça, on démarre avec l'installation !

Ce qui change avec l'application Docker For Windows

Installation

L'application est téléchargeable ici : Docker for Windows (Beta)

Pour soumettre une demande de code d'accès, c'est ici

Le téléchargement fournit un .msi afin d'installer le Docker Engine et les autres composants

Imgur

Une fois l'installation terminée, l'icône de l'application Docker apparait dans le Systray.

Imgur Imgur

Les composants installés

La première différence avec Docker For Windows est notre hôte par défaut qui est une VM Hyper-V. Cette VM - MobyLinuxVM- a une autre particularité, elle est construite à partir d'un iso (mobylinux.iso) différent de la Docker Toolbox (boot2docker.iso). Cela s'explique par le fait que l'engin Docker ait été construit à de partir la distribution Alpine Linux qui est très légère (5MB).

Imgur Imgur

Un VirtualSwitch NAT a été créé pendant l'installation de Docker afin de donner un accès internet à notre VM.

Imgur Imgur

Au niveau de l'application, le menu settings offre les fonctionnalités suivantes :

Imgur

On peut définir le mode de démarrage de Docker : Startup Windows ou manuel.

Une différence subtile existe entre une VM Hyper-V et une VM VirtualBox au niveau des volumes partagés (Manage shared drives). En effet avec Docker Toolbox et VirtualBox, le mapping de volumes était déjà possible via la fonctionnalité Shared Folder.

Pratique ! ...mais l'inconvénient principal étant l'accès à tous les volumes hôtes à partir de C:\ et D:\ par exemple. Avec Docker dans VirtualBox, par défaut on ne peut mapper que les éléments qui sont localisés dans C:\Users\[Users]\.

Avec Hyper-V ce problème a été solutionné :

Imgur

Le fichier settings.json qui est édité lorsqu'on modifie ces options se trouve dans %APPDATA%\Docker

Imgur

Pour terminer on peut tester les différents composants qui arrivent dans ce bundle :

  • le client Docker
  • Docker-compose
  • Docker-machine

Imgur

Conclusion

Docker évolue rapidement et Docker For Windows en est un bon exemple. Au cours des 2 dernières années, les environnements sur Windows se sont adaptés à la cadence. Gardez un oeil sur les travaux que fait Microsoft sur les Windows Server Containers. La vidéo que j'ai partagée plus bas est une vision commune de Docker, Linux et Microsoft. Elle laisse entrevoir ce que sera le futur du développement sur Windows 10 et Windows Server.

Les choses ne vont surement pas s'arrêter là et on va très probablement voir arriver les Hyper-V Containers sur Windows 10.

Avec la direction que Microsoft prend avec Windows Server Nano et tout le travail qui est mis sur la conteneurisation des applications, je m'avance mais pourquoi pas un seul et unique Windows finalement ...? #W8&S33 :)