Appuyez sur Entrée pour voir vos résultats ou Echap pour annuler.

Tutoriel d’installation et configuration de Windows Subsystem for Linux (WSL) avec Docker

Introduction

Jusqu’à la dernière Creator’s Update, des mises à jour fréquentes sont apportés à WSL.
De nouvelles features sont ajoutées mais elles peuvent casser la compatibilité avec l’existant, nécessite de refaire sa configuration (dernier exemple en date, la prise en compte des droits unix et du case sensitive, ce qui a nécessité de modifier ses points de montage).

Exemple :
avant sudo mount -t drvfs Z: /mnt/z
après sudo mount -t drvfs //shou/priv /mnt/z -o 
noatime,case=dir,uid=1000,gid=1000,case=force

Étape 1 – Préparer Windows

Dans Turn Windows features on or off, cocher Hyper-V (hyperviseur, nécessaire pour docker) et Windows Subsystem for Linux

Étape 2 – Installer WSL (Windows Subsystem for Linux)

Dans le Store Microsoft, chercher Linux et installer la distribution de son choix.
J’utilise Ubuntu 18.04, ce qui peut ammener des différences sur les problèmes rencontrés.

Étape 2.1 (optionnel) – Upgrader son terminal

Installer un émulateur de terminal plus puissant que celui fourni par Windows.
Option facile : wsltty https://github.com/mintty/wsltty
Plus complexe : terminator https://blog.ropnop.com/configuring-a-pretty-and-usable-terminal-emulator-for-wsl/
D’autres choix sont proposés dans le lien ci dessus, à vous d’expérimenter !

Étape 3 – Docker

Un bon guide est disponible ici (en anglais): https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly

Attention aux petits accrocs:
Pour les volumes, docker nécessite le path absolu windows.
Pas possible d’utiliser un symlink vers le repertoire de dev.
Il faut modifier WSL pour que les disques soient montés en root (/) et non dans /mnt

# /etc/wsl.conf
[automount]
    root = /
    options = "metadata"

Si votre app crée des fichiers / dossiers sur le système hôte, il faut en plus rajouter sur votre dossier de dev les droits au groupe docker-users

Tutoriel créé par Mehdi WEIBEL @whinette, un grand merci à lui !