Kann ich mit der WSL von Windows 10 Spring Update (2018) Docker darauf ausführen? und warum?

9

Ich habe gehört, dass "Windows 10 Spring Update WSL Unix Sockets-Unterstützung bringt".

Zuvor konnte ich den Docker-Dienst aufgrund eines Socket-Fehlers nicht in einer WSL ausführen.

Unter Unix: ///var/run/docker.sock kann keine Verbindung zum Docker-Daemon hergestellt werden. Läuft der Docker-Daemon?

Reicht die neue WLS-Spring-Update-Funktion aus, um Docker auf WSL auszuführen?

Daniel Santos
quelle
"Reicht die neue WLS-Spring-Update-Funktion aus, um Docker auf WSL auszuführen?" - Nein
Ramhound
In GitHub wird derzeit diskutiert. Siehe diese Ausgabe: github.com/Microsoft/WSL/issues/2291
Biswapriyo
tldr; WSL fälscht den Linux-Kernel, aber nicht genug davon, um Docker
auszuführen

Antworten:

11

Reicht die neue WLS-Spring-Update-Funktion aus, um Docker unter WSL auszuführen?

Microsoft unterstützt die Ausführung des Docker-Dämons (auch als Dienst bezeichnet) innerhalb der WSL-Instanz nicht.

Wir werden häufig gefragt, ob Docker im Windows-Subsystem für Linux (WSL) ausgeführt werden soll. Wir unterstützen die Ausführung des Docker-Daemons nicht direkt in der WSL. Sie können jedoch den Daemon aufrufen, der unter Windows von der WSL ausgeführt wird. Was lässt dich das tun? Sie können Docker-Dateien erstellen, erstellen und im Daemon ausführen - Windows oder Linux, je nachdem, welche Laufzeit Sie ausgewählt haben - und das alles bequem von der WSL aus.

[Cross Post] WSL-Interoperabilität mit Docker

Der Docker-Daemon kann nicht unter WSL ausgeführt werden, da er nicht die erforderlichen Kernel-ABIs implementiert. Wenn Sie Docker für Windows ausführen, stellen Sie wahrscheinlich eine Verbindung zu der von ihm verwalteten virtuellen Hyper-V-Maschine her .

Läuft Docker innerhalb der WSL oder stellt es eine Verbindung zu Windows her?

Während der Dämon nicht in einer WSL-Instanz ausgeführt werden kann, können Sie mithilfe der Docker-CLI eine Verbindung zu einem Docker-Dienst herstellen, der in Ihrer Windows-Installation ausgeführt wird.

In den allgemeinen Einstellungen möchten Sie den Daemon ohne TLS verfügbar machen. Dieser Schritt ist erforderlich, damit der Dämon einen TCP-Endpunkt überwacht. Wenn Sie dies nicht tun, können Sie keine Verbindung über die WSL herstellen.

Geben Sie hier die Bildbeschreibung ein

Wir müssen Docker noch in der WSL installieren, da wir dadurch auf die> Docker-CLI zugreifen können. Wir werden uns einfach nicht die Mühe machen, den Server zu starten.

Die folgenden Anweisungen gelten für Ubuntu. Mit dem Herbst-Update 2017 von Windows unterstützt WSL jetzt eine Vielzahl von Distributionen. Wenn Sie also etwas anderes als Ubuntu verwenden, befolgen Sie die Docker-Installationsanleitung für Ihre Distribution aus den Docker-Installationsdokumenten.

Dadurch wird der Edge-Kanal installiert. Wenn Sie möchten, ändern Sie "Edge" in "Stable". Möglicherweise möchten Sie auch die Docker Compose-Version basierend auf der neuesten Version aktualisieren .

# 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

Öffnen Sie zunächst ein WSL-Terminal, da einige Befehle ausgeführt werden müssen.

Erstellen und ändern Sie die neue WSL-Konfigurationsdatei:

sudo nano /etc/wsl.conf

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

Wenn Sie beim nächsten Start Ihres WSL-Terminals eine Fehlermeldung erhalten, flippen Sie nicht aus. Es ist ein Fehler mit 18.03 und Sie können ihn leicht beheben. Drücken Sie STRG + Umschalt + ECS, um den Task-Manager zu öffnen, gehen Sie zur Registerkarte "Dienste", suchen Sie den Dienst "LxssManager" und starten Sie ihn neu.

Einrichten von Docker für Windows und WSL für einen einwandfreien Betrieb

Ramhound
quelle