Pour mes développements je travail beaucoup sous Ubuntu et dernièrement j'utilise énormement Docker pour mettre en place rapidement un serveur web local.
Shell sous windows
Mais evidement je suis aussi sous Windows et quelquefois j'aimerais bien utiliser Windows pour mes développements... Seulement voilà, passer du bash de Linux à Windows, c'est pas mal de galères. Bien sûr il y a des possibilités pour installer Git sous Windows qui vient avec un bash, ou CygWin.
Mais on fini toujours par rencontrer des souçis et ces interfaces pésent un peu lourd, c'est quand même abérant de simuler un shell alors que Windows vient maintenant avec un shell puissant et efficace : PowerShell. Tout ça en attendant le terminal Ubuntu en natif sous Windows.
Heureusement il existe des solutions pour retrouver un parfum de ligne de commande en natif sous Windows et installer simplement des programmes Linux : Chocolatery ou Scoop. J'ai été beaucoup plus impressionné par ce dernier. Propore, clair, simple à utiliser, restreint a l'environnement utilisateur, au final on garde seulement Powershell avec les commandes Linux !
Docker sous Windows avec Powershell
Petit exemple, Docker et Git sous Windows avec Powershell 3 :
set-executionpolicy unrestricted -s cu
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
Et c'est parti pour le basic :
scoop add extras
scoop install 7zip git openssh concfg concfg import solarized small
Support pour l'authentification ssh :
scoop install pshazz
Quelques programmes bien utiles :
scoop install curl coreutils grep less sed sudo vim wget
Maintenant allons y pour un Docker / Docker machine / Docker compose :
scoop install docker docker-compose docker-machine
Créons notre machine Docker de base pour travailler sous Windows :
docker-machine create
docker-machine env
On copie la ligne pour que le shell se connect directement à notre machine Docker qui fait tourner le service docker.
& "C:\Users\_USER_\AppData\Local\scoop\apps\docker-machine\0.7.0\docker-machine.exe" env | Invoke-Expression
Et voilà ! Un environnement Docker sans la toolbox Docker et son joli mais inutile car trop limité Kitematic (qui visiblement n'est plus packagé d'office pour Docker 1.12)