"tls:收到长度超过20527的超大记录"试图从Win10 WSL Bash"docker run"

spe*_*x66 8 windows docker tls1.2 windows-subsystem-for-linux docker-for-windows

再生产

最新的Docker Edge(18.03.0-ce-rc1-win54(16164))安装在Win10上.

在更新到最新的Docker CE Edge版本之前切换到"Linux容器"(但最新的"Docker for Windows"UI不再显示切换选项了吗?!).

docker run hello-world从Windows CMD 运行没问题.

但是从WSL Bash(最新的Win10 1709)调用相同的内容始终会回复此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
Run Code Online (Sandbox Code Playgroud)

此设置似乎无关,但docker根本不需要运行命令:

在没有TLS的tcp:// localhost:2375上公开守护进程

我想知道为什么这不是Windows Docker/WSL使用的常见报告问题.似乎有些东西搞砸了,但我不知道从哪里开始研究.

例如:

  1. 为什么问题只出现在WSL Bash而不是Windows CMD下?
  2. 如何改变daemon.json价值"insecure-registries": []作为一些SO相关的消息建议?

任何帮助/指针表示赞赏!

(= PA =)

spe*_*x66 6

由于这让我有点害怕,我又做了一次谷歌会议,并在这方面的评论中找到了解决方案:*https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-对工作完美

简而言之:*我所描述的问题来自默认但过时的docker.io安装,而不是最新和维护的docker-ce安装.

一旦我删除旧的(尾随*是有意的!):

sudo apt-get remove --purge docker*
Run Code Online (Sandbox Code Playgroud)

并安装了最新的docker-ce- 根据上面描述的程序 - TLS问题消失了!

快乐对接.