web-dev-qa-db-fra.com

La mise à jour WSL de Windows 10 Spring (2018) me permet-elle d'exécuter docker dessus? et pourquoi?

J'ai entendu dire que "Windows 10 mise à jour apportant la prise en charge des sockets WSL Unix".

Auparavant, je ne pouvais pas exécuter le service Docker dans un WSL en raison d'une erreur de socket.

Impossible de se connecter au démon Docker à l'adresse unix: ///var/run/docker.sock. Le démon docker est-il en cours d'exécution?

La nouvelle fonctionnalité de mise à jour de printemps WLS est-elle suffisante pour exécuter le menu fixe sur WSL?

9
Daniel Santos

La nouvelle fonctionnalité de mise à jour de printemps WLS est-elle suffisante pour exécuter Docker sur WSL?

Microsoft ne prend pas en charge l'exécution du démon Docker (également appelé service) au sein de l'instance WSL.

On nous pose souvent des questions sur l'exécution de docker à partir du sous-système Windows pour Linux (WSL). Nous ne prenons pas en charge l’exécution du démon docker directement dans WSL. Mais ce que vous pouvez faire est d’appeler le démon fonctionnant sous Windows à partir de WSL. Qu'est-ce que cela vous laisse faire? Vous pouvez créer des fichiers Docker, les créer et les exécuter dans le démon (Windows ou Linux, selon l'exécution que vous avez sélectionnée), le tout dans le confort de WSL.

[Cross Post] Interopérabilité de WSL avec Docker

Le démon Docker ne peut pas s'exécuter sous WSL car il n'implémente pas les ABI du noyau nécessaires. Si vous exécutez Docker pour Windows, vous vous connectez probablement à la machine virtuelle Hyper-V qu’elle gère .

Docker fonctionne-t-il dans WSL ou est-il connecté à Windows?

Bien que le démon ne puisse pas être exécuté dans une instance WSL, vous pouvez utiliser la CLI de Docker pour vous connecter à un service Docker exécuté sur votre installation Windows.

Dans les paramètres généraux, vous souhaiterez exposer le démon sans TLS. Cette étape est nécessaire pour que le démon écoute sur un noeud final TCP. Si vous ne le faites pas, vous ne pourrez pas vous connecter à partir de WSL.

enter image description here

Nous devons encore installer Docker dans WSL car il nous donnera accès à la CLI> Docker. Nous ne ferons pas la peine de démarrer le serveur.

Les instructions suivantes s’appliquent à Ubuntu, mais avec la mise à jour à l’automne 2017 de Windows, WSL prend désormais en charge diverses distributions. Si vous utilisez autre chose qu’Ubuntu, suivez alors le guide d’installation de Docker pour votre distribution à partir des documents d’installation de Docker.

Ceci installera le canal Edge, remplacez ‘Edge’ par ‘stable’ si vous le souhaitez. Vous pouvez également souhaiter mettre à jour la version de Docker Compose sur la base de la dernière version .

# Environment variables you need to set so you don't have to edit the script below.
export DOCKER_CHANNEL=Edge
export DOCKER_COMPOSE_VERSION=1.21.0

# Update the apt package index.
Sudo apt-get update

# Install packages to allow apt to use a repository over HTTPS.
Sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

# Add Docker's official GPG key.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | Sudo apt-key add -

# Verify the fingerprint.
Sudo apt-key fingerprint 0EBFCD88

# Pick the release channel.
Sudo add-apt-repository \
   "deb [Arch=AMD64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   ${DOCKER_CHANNEL}"

# Update the apt package index.
Sudo apt-get update

# Install the latest version of Docker CE.
Sudo apt-get install -y docker-ce

# Allow your user to access the Docker CLI without needing root.
Sudo usermod -aG docker $USER

# Install Docker Compose.
Sudo curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose &&
Sudo chmod +x /usr/local/bin/docker-compose

Tout d'abord, ouvrez un terminal WSL car nous devons exécuter quelques commandes.

Créez et modifiez le nouveau fichier de configuration WSL:

Sudo nano /etc/wsl.conf

# Now make it look like this and save the file when you're done:
[automount]
root = /
options = "metadata"

Si vous rencontrez une erreur au prochain démarrage de votre terminal WSL, ne paniquez pas. C’est un bogue avec 18.03 et vous pouvez le résoudre facilement. Appuyez sur CTRL + Maj + ECS pour ouvrir le gestionnaire de tâches, allez à l'onglet "Services", trouvez le service "LxssManager" et redémarrez-le.

Configuration de Docker pour Windows et WSL afin qu'il fonctionne parfaitement

11
Ramhound