Docker Toolbox et Git sous Windows

L’utilisation de docker sous Windows avec boot2docker était un début, mais avait encore quelques défauts (notamment le partage des fichiers entre l’OS et Docker).

De plus, les outils nécessaires au fonctionnement de docker n’était pas tous compatible avec Windows et devait être installés et configurés séparément

L’arrivée de Docker Toolbox simplifie la donne et propose un outil clé en main installable en quelques clics. A noter que Docker Toolbox est également disponible pour Mac OS

docker-toolbox

Docker Toolbox installe automatiquement tous les outils nécessaires pour faire du docker et effectue la configuration par défaut. Voici la description des différents éléments.

VirtualBox

Si il n’est pas déjà installé, Docker Toolbox va effectuer l’installation de VirtualBox. VirtualBox est un logiciel de virtualisation capable de lancer plusieurs machines virtuelles.

Si pour faire des containers sous Windows, il faut donc créer des machines virtuelles Linux, les conteneurs n’ont aucun intérêt alors?

Au contraire, la virtualisation est certes toujours indispensables pour le moment, mais il ne faut créer qu’une seule machine virtuelle pour faire tourner des centaines de conteneurs dessus. Au niveau des ressources, c’est clairement moins consommateur que plusieurs dizaines de machine virtuelle.

Docker Client sous Windows

Docker est composé d’une partie serveur appelé Deamon et d’une partie cliente. La communication entre les 2 se fait par des requêtes Rest. Il était auparavant nécessaire d’exécuter la partie cliente dans un environnement Linux. Avec Docker Client pour Windows, il est désormais possible d’exécuter la commande docker directement depuis une fenêtre de commande Windows. Le client Windows communique avec les démons docker qui eux tournent encore sous Linux (pour le moment)

Docker Machine

Docker Machine est un outil qui permet le provisionning de machine virtuelle prête à lancer des conteneurs Docker. Il permet d’obtenir rapidement une machine virtuelle prête à l’emploi auprès des principaux fournisseurs cloud (Amazon, Google, Azure) ou auprès d’une solutions de virtualisation (VirtualBox, VMware ou encore OpenStack).

Dans le cas qui nous intéresse, docker-machine permet de lancer automatiquement une machine virtuel dans virtualbox (il s’agit de l’image boot2docker), et va automatiquement configurer le client docker installé sur l’hôte Windows.

Docker compose

Docker compose est outil qui simplifie le lancement des conteneurs. Il permet grâce à un fichier yaml de lister les conteneurs à lancer et la configuration de chaque conteneur. En une seule commande, il lance plusieurs conteneurs inter-connectés et se substitue à de multiples commandes docker run. Docker Compose est un excellent outil pour faire de l’Infrastructure As Code versionnée.

Kitematic

Kitematic est une interface graphique proposant une alternative à la ligne de commande. Développé sous Mac OS, il a été acheté par Docker et porté sous Windows.

docker-kinematic

Git MSYS-git UNIX tools

Qui ne connait pas github? cette formidable communauté qui permet de versionner et de partager vos projets git. La communauté Docker y a trouvé un foyer, github est la principal source pour trouver vos images docker.

Pour vous simplifier la vie, Docker Toolbox installe donc automatique l’utilitaire git pour Windows.

Attention aux caractères de fin de ligne

Sous Windows, la fin de ligne est représenté par un caractère CRLF Carriage Return Line Feed (\r\n) alors que sous Linux, le caractère de fin de ligne est LF, line feed (\n)

Pour assurer une compatibilité Linux/Windows, Git MSYS-git sous Windows remplace automatique les sauts de ligne Linux en saut de ligne Windows. Ce paramètre par défaut résout énormément de problèmes pour la plupart des langages de programmation, mais peux poser un problème de build pour vos images Docker.

Docker Toolbox partage c:\Users avec la machine virtuelle boot2docker. Quand vous construisez une image avec un Dockerfile  récupéré avec git. En réalité, la commande docker build est exécuté dans une machine virtuelle Linux avec des fichiers hébergé sur votre Windows qui n’ont pas le bon retour de ligne.

Si vous avez une erreur de ce type, pensez à modifier ce paramètre de git et à télécharger à nouveau votre projet git.

/bin/bash:1: command not found: ^H

Docker Quick Start Terminal

Il s’agit du raccourci installé sur votre bureau Windows. D’un simple double-clic, cet utilitaire lance la machine virtuelle, et ouvre une fenêtre de commande avec un client docker prêt à l’emploi. En moins d’une minute, vous êtes prêt à tester Docker.

docker-quick-start-windows