Les Actualités

Tutoriels

Installer docker sous Windows 32/64 bits avec Vagrant

Dans ce tutoriel, Softia vous explique comment installer Docker sous Windows 32/64 bits avec Vagrant.

Faire tourner Docker sous Windows peut s'avérer assez compliqué. 
Ce guide est donc là pour vous aider à installer docker sous Windows 32/64 bits avec Vagrant et à démarrer rapidement un environnement fonctionnel avec Docker, docker-compose et un certificat qui permet d'accéder au registre Docker.

Installer docker sous Windows 32/64 bits avec Vagrant : tout d'abord installez Git for Windows

Git for Windows apporte un jeu d'outils en ligne de commande, dont une émulation Bash qui se comporte comme la commande git sous systèmes Linux/Unix. Ce n'est pas strictement nécessaire pour l'installation mais cela peut apporter un certain confort.

https://git-for-windows.github.io/

Installer ensuite Cygwin

Cygwin est une collection d'utilitaires libres avec des fonctionnalités similaires aux utilitaires disponibles sur systèmes Linux/Unix. Nous avons besoin de Cygwin pour le support de l'utilitaire rsync sous Windows.

Installez ou mettez à jour Cygwin en prenant soin de sélectionner l'utilitaire rsync sous l'arborescence Net.

https://cygwin.com/install.html

Ajoutez le répertoire d'utilitaires Cygwin à la variable système Path de Windows :

C:\cygwin\bin

Ouvrez une invite de commande et vérifiez la disponibilité de rsync :

rsync --help

Installer VirtualBox et ses extensions

VirtualBox permet de faire tourner des machines virtuelles avec un système d'exploitation invité sur un système d'exploitation hôte. Vous aurez besoin de VirtualBox pour faire tourner un système invité 64 bits sur une machine Windows 32 bits (avec un processeur 32 bits qui supporte l'émulation).

Téléchargez et installez la dernière version de VirtualBox pour Windows, le pack d'extensions, et les additions client.

https://www.virtualbox.org/wiki/Downloads

Installez VirtualBox, et lorsque cela est fini, installez le lot d'extensions puis redémarrez. 
ATTENTION, les extensions et additions client sont nécessaires au bon fonctionnement du partage de répertoires entre le système émulé et le système hôte.

En cas de problèmes

Si vous expérimentez des problèmes entre Vagrant et VirtualBox pour la reconnaissance de l'adaptateur hôte réseau, sachez que le pilote NDIS6 VirtualBox est sans doute à l'origine.

La solution est d'utiliser l'ancien driver en version NDIS5. Désinstallez VirtualBox et réinstallez-le en ligne de commande.

Lors d'une mise à jour, vous pourrez alors redémarrer les machines gérées par Vagrant directement depuis l'interface VirtualBox.

Installer Vagrant

Vagrant est un utilitaire en ligne de commande qui permet de gérer le cycle de vie de machines virtuelles. Il permet d'initialiser des machines depuis des dépôts en ligne, paramétrer les machines pour, par exemple, configurer le réseau ou les répertoires partagés,  approvisionner les machines pour répliquer des environnements, etc.

Il fonctionne conjointement avec des fournisseurs pour la virtualisation, dont VirtualBox. Pour installer les dernières versions de Vagrant et les faire fonctionner avec VirtualBox vous devez avoir une version à jour de VirtualBox.

Téléchargez et installez Vagrant :

https://www.vagrantup.com/downloads.html

Ouvrez une invite de commande et vérifiez le fonctionnement :

vagrant --version

Vagrant possède des extensions, installez l'extension qui permet d'installer automatiquement les additions clientes VirtualBox sur le système invité :

vagrant plugin install vagrant-vbguest

Créer une machine virtuelle avec Docker installé

Nous allons créer une machine sous Ubuntu depuis les images de HashiCorp (pourvoyeur de la solution Vagrant).

Ouvrez une invite de commande dans un répertoire que vous dédierez à vos machines virtuelles.

Téléchargez et décompressez l'archive qui contient la configuration de la machine virtuelle.

Créez et démarrez la machine virtuelle :

vagrant up

Cette dernière commande permet à l'utilitaire de construire une machine virtuelle. Si tout se passe correctement, une image d'Ubuntu nommée "ubuntu/trusty64" est téléchargée et configurée sous VirtualBox. Vous pourrez ultérieurement modifier votre fichier pour paramétrer le nom d'hôte, l'adresse IP sur le réseau privé, ou encore les répertoires partagés.

Lorsque la machine est opérationnelle, elle est ensuite approvisionnée par un script shell, le script run.sh. Ce script installe Docker, docker-compose, et renseigne un certificat qui permet d'accéder aux dépôts Docker de votre entreprise.

Connectez-vous en ssh sur la machine :

vagrant ssh

Passez en mode utilisateur root :

sudo su -

Vérifiez l'installation :

docker --version
docker-compose --version

Puis vérifiez la connexion au dépôt de votre entreprise :

docker login https://docker.

Déconnectez l'utilisateur root et quittez la session ssh :

exit
exit

Arrêter ou redémarrer la machine virtuelle

Ouvrez une invite de commandes et positionnez-vous sous le répertoire qui contient le fichier Vagrantfile.

Pour arrêter la VM :

vagrant halt

Pour démarrer la VM :

vagrant up

Pour se connecter à la VM et passer en utilisateur root :

vagrant ssh
sudo su -

Modifier la configuration de la machine virtuelle

Vous pouvez modifier la configuration en éditant le fichier Vagrantfile et relancer la machine pour convenir à vos besoins.

Modifier le nom d'hôte

Attribuez un nom d'hôte à votre machine, ce paramètre modifie le contenu du fichier /etc/hostname :

config.vm.hostname = "xx-docker-vm"

Modifier l'adresse IP de la machine

Vous pouvez attribuer une IP arbitraire à cette VM, attention à ne pas créer de conflit avec le réseau existant, certaines plages d'adresse sont réservées ou utilisées :

config.vm.network "private_network", ip: "xxx.xxx.xx.xx"

Indiquer les répertoires partagés

Si vous souhaitez importer des conteneurs Docker ou les codes sources de vos projets, vous aurez besoin de répertoires partagés. Par ex. :

config.vm.synced_folder ".", "/vagrant", type: "nfs"
config.vm.synced_folder "C:\\wamp\\www", "/www", type: "nfs"

Ceci a pour effet de monter le répertoire courant (où se situe le fichier Vagrantfile) sur le répertoire de la machine invité /vagrant (ce répertoire pré-existe dans l'image HashiCorp ubuntu/trusty64).

ATTENTION, la seconde instruction ne peut aboutir que si vous créez au préalable le répertoire /www sous une connexion ssh, dans le cas où le répertoire n'existe pas, une erreur rsync est retournée.

Je prends contact !

Toutes les publications de Softia, ESN sur LinkedIn !

Un projet, des questions ?

Nous contacter