Docker sous Windows 10
Installation de docker sur WSL

L’objectif est d’installer docker sur WSL (Windows Subsystem for Linux) et de démarrer le service à l’ouverture de session.
$ sudo apt update ; sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt update
$ sudo apt-get install docker-ce=18.06.1~ce~3-0~ubuntu
Prendre la version indiquée
- Erreur si mauvaise version :
eric@DESKTOP-A9ZZL:/mnt/c/Windows/System32$ sudo docker run --rm hello-world
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:319: getting the final child's pid from pipe caused \"EOF\"": unknown.
Pour empêcher les mises à jour :
# apt-mark hold docker-ce
docker-ce set on hold.
Lors d’un apt upgrade, le package sera listé dans la liste des maintenus :
# apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
docker-ce
Si on souhaite libérer
# apt-mark unhold docker-ce
Afin de pouvoir piloter docker avec le compte utilisateur je l’ajoute au groupe docker
sudo usermod -a -G docker $USER
- Automatiser à l’ouverture de session Start Docker in an Elevated Prompt when Windows Boots Now that it’s possible to start Docker with a single non-interactive command, we can run it as an administrator when your system boots.
Création du script de lancement
/usr/local/sbin/start_docker.sh
#!/usr/bin/env bash
sudo cgroupfs-mount
sudo service docker start
chmod +x /usr/local/sbin/start_docker.sh
sudo chmod 755 /usr/local/sbin/start_docker.sh
- Ajout de l’utilisateur au groupe sudo
Ajouter tout en bas du fichier /etc/sudoers
<your username here> ALL=(ALL:ALL) NOPASSWD: /bin/sh
/usr/local/sbin/start_docker.sh
- Création d’une tâche Windows

Bien activer l’exécution avec privilège


Argument : -c "sudo /bin/sh /usr/local/sbin/start_docker.sh


- Validation
docker run --rm hello-world
