it-swarm.com.de

"tls: übergroßer Datensatz mit Länge 20527 empfangen" versucht, nur von Win10 WSL Bash aus "Dockerlauf" auszuführen

reproduktion

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

frage

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: 

  1. Warum erscheint das Problem nur unter WSL Bash und nicht unter Windows CMD?
  2. Wie daemon.json-Wert für "insecure-registries": [] als Hinweis auf SO verwandte Nachrichten ändern?

Alle Hilfe/Hinweise sind dankbar!

(= PA =)

7
spex66

Lösung

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.

5
spex66

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.

1
Davide Mauri

Hier sind die Schritte, um das Problem zu lösen:

  1. 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
    
  2. 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
    
  3. Expose-Dämon ohne TLS in Ihrer Docker-App unter Windows.

  4. Stellen Sie eine Verbindung dazu her, indem Sie in WSL die Variable DOCKER_Host definieren:

    export DOCKER_Host=:2375
    

Verbunden:

1
kenorb