最新的Docker Edge(18.03.0-ce-rc1-win54(16164))安装在Win10上。
在更新到最新的Docker CE Edge版本之前切换到“Linux容器”(但最新的“Docker for Windows”用户界面不再显示切换选项了吗?!)。
从Windows CMD运行docker run hello-world
没问题。
但是从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
此设置似乎无关,但必须完全运行docker
命令:
在没有TLS的tcp:// localhost:2375上公开守护程序
我想知道为什么这不是Windows Docker / WSL使用的常见报告问题。似乎有些东西搞砸了,但我不知道从哪里开始研究。
例如:
daemon.json
的{{1}}值作为某些与SO相关的消息建议?感谢任何帮助/指示!
(= PA =)
答案 0 :(得分:5)
由于这让我有点害怕,我又做了一次Google会议,并在这方面的评论中找到了解决方案: * https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly
简而言之:
*我所描述的问题来自默认但过时的docker.io
安装,而不是最新安装的docker-ce
安装。
我删除了旧版本(后跟*
是有意的!):
sudo apt-get remove --purge docker*
并安装了最新的docker-ce
- 根据上面描述的程序 - TLS问题已经消失!
快乐对接。
答案 1 :(得分:1)
建议的解决方案
sudo apt-get remove --purge docker*
不适用于我,因为当我尝试运行apt-get remove命令时,出现以下错误:
No process in pidfile '/var/run/docker-ssd.pid' found running; none killed.
invoke-rc.d: initscript docker, action "stop" failed.
因此,我必须通过执行以下操作手动卸载Docker:
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
然后我就按照这里的说明进行操作:
https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly
问题已解决。
答案 2 :(得分:1)
以下是解决问题的步骤:
从WSL(Ubuntu)中删除docker.io
(如果有)和相关软件包:
sudo apt-get remove docker.io
sudo apt-get remove docker*
注意:如果出现错误( function not implemented ),请尝试通过upgrade WSL(需要一段时间):
sudo -S apt-mark hold procps strace sudo
sudo -S env RELEASE_UPGRADER_NO_SCREEN=1 do-release-upgrade
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
在Windows的Docker app中公开不带TLS的守护程序。
通过在WSL中定义DOCKER_HOST
变量来连接到它:
export DOCKER_HOST=:2375
相关: