Neuester Docker Edge (18.03.0-ce-rc1-win54 (16164)), installiert unter Win10.
Wurde auf "Linux Container" umgestellt, bevor auf die neueste Docker CE Edge-Version aktualisiert wurde (aber die neueste "Docker for Windows" - Benutzeroberfläche zeigt die Option zum Wechseln nicht mehr an ?!).
Kein Problem, docker run hello-world
von Windows CMD auszuführen.
Wenn Sie jedoch dasselbe von WSL Bash (letzte Win10 1709) aufrufen, antworten Sie immer mit dieser tls
-Fehlermeldung:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
continuumio/miniconda3 latest 29af5106b6a4 17 hours ago 443 MB
hello-world latest f2a91732366c 3 months ago 1.85 kB
$ docker --version
Docker version 1.13.1, build 092cba3
$ docker version
Client:
Version: 1.13.1
API version: 1.26
Go version: go1.6.2
Git commit: 092cba3
Built: Thu Nov 2 20:40:23 2017
OS/Arch: linux/AMD64
Server:
Version: 18.03.0-ce-rc1
API version: 1.37 (minimum version 1.12)
Go version: go1.9.4
Git commit: c160c73
Built: Thu Feb 22 02:42:37 2018
OS/Arch: linux/AMD64
Experimental: true
$ echo $DOCKER_Host
tcp://0.0.0.0:2375
$ docker run hello-world
tls: oversized record received with length 20527
Diese Einstellung scheint unabhängig zu sein, ist aber notwendig, um den Befehl docker
überhaupt auszuführen:
Stellen Sie den Dämon auf tcp: // localhost: 2375 ohne TLS zur Verfügung
Ich frage mich, warum dies kein allgemein bekanntes Problem bei der Verwendung von Windows Docker/WSL ist. Etwas scheint durcheinander zu sein, aber ich habe keine Ahnung, wo ich anfangen soll.
Zum Beispiel:
daemon.json
-Wert für "insecure-registries": []
als Hinweis auf SO verwandte Nachrichten ändern?Alle Hilfe/Hinweise sind dankbar!
(= PA =)
Als dies ein bisschen ausfiel, machte ich eine weitere Google-Sitzung und fand die Lösung in den Kommentaren dieser Seite: * https://nickjanetakis.com/blog/setting-up-docker-for-windows -und-wsl-zum-arbeiten-fehlerlos
Kurz gesagt: * Das Problem, das ich beschrieben habe, stammt von einer docker.io
-Standardinstallation, jedoch nicht von der neuesten und gewarteten docker-ce
-Installation.
Sobald ich den alten mit entfernt habe (der nachfolgende *
ist beabsichtigt!):
Sudo apt-get remove --purge docker*
und installierte den neuesten docker-ce
- gemäß dem auf der obigen Seite beschriebenen Verfahren - das TLS-Problem war weg!
Glückliches Andocken.
Die vorgeschlagene Lösung
Sudo apt-get remove --purge docker*
funktionierte nicht für mich, seit ich den Befehl apt-get remove ausführen wollte, erhielt ich die folgende Fehlermeldung:
No process in pidfile '/var/run/docker-ssd.pid' found running; none killed.
invoke-rc.d: initscript docker, action "stop" failed.
Also musste ich Docker manuell deinstallieren, indem ich Folgendes ausführte:
Sudo rm /var/lib/dpkg/info/docker.io.*
Sudo rm /var/cache/apt/archives/docker.io*
Sudo rm /etc/default/docker
Sudo rm /etc/init.d/docker
Sudo rm /etc/init/docker.conf
und danach folgte ich einfach der Anweisung hier:
https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly
Problem gelöst.
Hier sind die Schritte, um das Problem zu lösen:
Entfernen Sie docker.io
(falls vorhanden) und verwandte Pakete von WSL (Ubuntu):
Sudo apt-get remove docker.io
Sudo apt-get remove docker*
Hinweis: Versuchen Sie im Falle von Fehlern (Funktion nicht implementiert) WSL zu aktualisieren durch (es dauert eine Weile)
Sudo -S apt-mark hold procps strace Sudo
sudo -S env RELEASE_UPGRADER_NO_SCREEN=1 do-release-upgrade
Docker CE installieren in WSL (Ubuntu):
Sudo add-apt-repository "deb [Arch=AMD64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Sudo apt-get update
Sudo apt-get install docker-ce
Expose-Dämon ohne TLS in Ihrer Docker-App unter Windows.
Stellen Sie eine Verbindung dazu her, indem Sie in WSL die Variable DOCKER_Host
definieren:
export DOCKER_Host=:2375
Verbunden: