Le dernier Docker Edge (18.03.0-ce-rc1-win54 (16164)) installé sur Win10.
Basculé sur "Conteneur Linux" avant la mise à jour vers la dernière version de Docker CE Edge (mais la dernière interface utilisateur "Docker pour Windows" n'indique plus l'option de commutateur?!).
Aucun problème pour exécuter docker run hello-world
à partir de Windows CMD.
Mais appeler le même depuis WSL Bash (dernière Win10 1709) répond toujours avec ce message d'erreur tls
:
$ 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
Ce paramètre ne semble pas avoir de relation, mais il est nécessaire d'exécuter la commande docker
:
Exposer le démon sur tcp: // localhost: 2375 sans TLS
Je me demande pourquoi il ne s'agit pas d'un problème commun signalé pour l'utilisation de Windows Docker/WSL. Quelque chose semble être foiré, mais je ne sais pas par où commencer.
Par exemple:
daemon.json
pour "insecure-registries": []
lorsque certains conseils liés aux messages SO?Toute aide/pointeurs sont appréciés!
(= PA =)
Comme cela me faisait un peu peur, je fis une autre session sur Google et trouvai la solution dans les commentaires de ce côté: * https://nickjanetakis.com/blog/setting-up-docker-for-windows -et-wsl-to-work-perfect
En résumé: * Le problème que j'ai décrit provient d'une installation docker.io
par défaut mais obsolète, au lieu de la dernière installation docker-ce
maintenue.
Une fois que j'ai supprimé l'ancien avec (le *
final est prévu!):
Sudo apt-get remove --purge docker*
et installé la dernière version de docker-ce
- conformément à la procédure décrite à la page ci-dessus - le problème de TLS avait disparu!
Bonne accostage.
La solution proposée
Sudo apt-get remove --purge docker*
n'a pas fonctionné pour moi car dès que j'ai essayé d'exécuter la commande apt-get remove, j'ai le message d'erreur suivant:
No process in pidfile '/var/run/docker-ssd.pid' found running; none killed.
invoke-rc.d: initscript docker, action "stop" failed.
J'ai donc dû désinstaller manuellement docker en exécutant ceci:
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
et après cela, j'ai juste suivi les instructions ici:
https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly
Problème résolu.
Voici les étapes pour résoudre le problème:
Supprimez docker.io
(le cas échéant) et les packages associés du WSL (Ubuntu):
Sudo apt-get remove docker.io
Sudo apt-get remove docker*
Remarque: En cas d'erreur (fonction non implémentée), essayez de mettre à niveau WSL by (cela prendra un peu de temps):
Sudo -S apt-mark hold procps strace Sudo
sudo -S env RELEASE_UPGRADER_NO_SCREEN=1 do-release-upgrade
Installez Docker CE dans 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
Démon Expose sans TLS dans votre application Docker sous Windows.
Connectez-vous à celui-ci en définissant la variable DOCKER_Host
dans WSL:
export DOCKER_Host=:2375
En relation: