Aperçu de Docker sous Windows avec Kitematic
Sommaire
I. Présentation
Il y a quelques jours, je me suis inscrit au programme Docker pour avoir l'accès à une version de test de Docker pour Windows, j'ai donc pris un peu de temps pour tester la bête. Mes premières impressions sont bonnes, c'est pourquoi j'ai décidé de partager avec vous un aperçu de ce qui est proposé, notamment au niveau de Kitematic qui est le client graphique qui permet de gérer ses containers Docker.
L'objectif de cet article n'est pas de vous montrer un étendu de toutes les possibilités offertes par Docker sous Windows, car j'en ai pas encore fait le tour, mais aussi, car ce n'est une version finale et donc, elle est amenée à évoluer. Le client graphique, Kitematic, est même en version alpha. On se contentera d'explorer Kitematic.
Tout d'abord, il faut savoir qu'il faut au minimum Windows 7 en 64 bits (je suis sous Windows 10) et que votre processeur doit supporter la virtualisation. En effet, VirtualBox sera installé sur votre poste pour qu'une instance tourne en arrière-plan avec une VM Docker, lorsque vous souhaitez vos containers, il faudra qu'elle soit démarrée.
II. Installation de Docker Toolbox
L'installation s'effectue très simplement, il s'agit d'un setup classique sous Windows.
Je réalise une installation complète pour bénéficier de l'ensemble des composants proposés, mais c'est surtout le Docker Client et la Docker Machine qui sont indispensables.
D'après les infos Docker, la VM Virtualbox tourne complètement en RAM, car elle est légère et prend environ 5 secondes à démarrer, je dirais plutôt 30 secondes.
Passons maintenant à l'utilisation de Docker avec Kitematic.
III. Créer un premier container avec Kitematic
Docker sous Windows peut se gérer en ligne de commande, comme sous Linux, avec les commandes habituelles, mais pour cet article j'ai souhaité m'intéresser de près à Kitematic qui simplifie grandement l'utilisation de Docker.
Lorsque l'on démarre Kitematic, ceci déclenche le démarrage de la VM Docker sur lequel il s'appuiera pour démarrer les containers. Sinon, on peut créer une VM Docker avec la commande suivante :
docker-machine create --driver virtualbox DockerVM1
# Pour lister les VM Docker en fonctionnement :
docker-machine ls
Après s'être connecté à Docker Hub, on accède aux containers disponibles, certains sont mis en avant, mais on peut accéder à tout le catalogue habituel (qui est immense). Par exemple, on va prendre un container "hello-world-nginx" qui va monter un serveur web sous Nginx, il suffit de cliquer sur le bouton "Create.
L'image du container est téléchargée, puis il sera démarré.
Ensuite, dans les paramètres de ce container dans Kitematic, on pourra voir l'adresse IP et le port externe attribué à ce container, et on peut très facilement s'y connecter :
Comme je le disais, dans les propriétés du container, on peut configurer le(s) port(s), avec le port interne à Docker et le port externe.
Sur la copie d'écran ci-dessus, vous remarquerez également l'onglet "Volumes", en fait il permet de faire le lien entre un répertoire Docker dans le container et un répertoire local sur votre poste. Par exemple, dans le cadre du site web que l'on vient de monter, c'est utile pour directement déposer des données dans le site web à partir d'un dossier local.
On retrouve bien l'index du site web dans un répertoire local :
Et si je modifie ce fichier, ce sera pris en compte :
Si l'on revient sur Kitematic, dans la console vous avez sur la gauche la liste de vos containers, et pour chaque, quatre boutons d'actions pour : redémarrer, démarrer ou stopper le container, ainsi que l'accès à la doc propre à ce container, ou le bouton "Exec" qui ouvre un shell directement au sein de se container.
Ainsi, on se retrouve avec une console PowerShell qui fait office de terminal Linux !
IV. Mise en place de WordPress avec Kitematic
Pour mettre en place WordPress, c'est un poil plus compliqué, mais ça reste simple une fois que l'on a bien pris en main l'interface de Kitematic. En effet, on va créer deux containers : un container MySQL et un container WordPress, il faudra ensuite les connecter ensemble pour que le WordPress utilise le serveur MySQL.
Lorsque l'on crée le container MySQL il ne démarre pas, car il manque des infos liées au mot de passe... Pour le container WordPress, c'est pareil, car il indiquera qu'il n'a pas les infos concernant le serveur de base de données.
Dans ce cas, c'est simple il faut aller dans les propriétés du container, et on peut accéder à des variables d'environnement qui permettent de configurer le container, il y en a tout un lot de prédéfini dans chaque container, et il est possible d'en ajouter.
Par exemple, dans ce cas précis, le container requiert que l'on définisse un mot de passe avec "MYSQL_ROOT_PASSWORD" alors on ajoute cette variable avec comme valeur le mot de passe que l'on souhaite (dommage, ça s'affiche en clair). On clic sur "Save" et là ça va immédiatement déclencher le démarrage du container (sauf s'il y aurait une autre erreur).
Pour le container WordPress, c'est pareil il faut indiquer quelques variables pour indiquer l'IP et le port du serveur MySQL, ainsi que les infos d'authentification. Il ne reste plus qu'à installer WordPress avec votre navigateur, trois clics plus tard :
Voilà pour ce premier aperçu de Docker sous Windows avec Kitematic, c'est franchement simple à utiliser et ça rend Docker tout de suite plus accessible. Cette intégration à Windows ouvre de nouvelles possibilités, notamment aussi, car on accède à la partie CLI de Docker facilement (là encore).
Il ne reste plus qu'à laisser travailler les développeurs qui sont en train de réaliser un très bel outil ! En attendant, nous n'avons pas fini de faire joujou...