[Docker/Windows] error during connect: In the default daemon configuration on Windows

这篇具有很好参考价值的文章主要介绍了[Docker/Windows] error during connect: In the default daemon configuration on Windows。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

我在学习 docker get-started 的 codelab。在我的win10机器上跑。我的win10之前没装过docker,在安装docker做codelab中遇到一系列问题:

  • docker 启动一直在"docker desktop starting"

  • no matching manifest for windows/amd64 10.0.19042 in the manifest list entries

  • error during connect: In the default daemon configuration on Windows

  • docker 退出时一直“docker desktop stopping”

过程

  1. 安装完docker desktop一打开就一直在"docker desktop starting"。等了好长时间也没有好。

docker: error during connect: in the default daemon configuration on windows,docker,Troubleshooting,docker,windows,node.js,Powered by 金山文档

这个网上找到很多解决方案,在命令行里运行:

cd "C:\Program Files\Docker\Docker"
./DockerCli.exe -SwitchDaemon

或者直接在docker desktop 这个选项里设置。

docker: error during connect: in the default daemon configuration on windows,docker,Troubleshooting,docker,windows,node.js,Powered by 金山文档

设置之后确实成功启动了。

  1. 然后玩codelab的时候到 docker build 的这一步出问题了:

docker: error during connect: in the default daemon configuration on windows,docker,Troubleshooting,docker,windows,node.js,Powered by 金山文档

命令行里显示“no matching manifest for windows/amd64 10.0.19042 in the manifest list entries”。我想到上面过程里我们做的是把linux container切换到windows container。但是codelab里这个image的base "node:18-alpine"。所以我们不应该切换到windows container。上面过程中的方法对我来说并不解决问题啊。

  1. 很神奇的是先切到windows container启动成功后,再切回linux container并不会出问题。。。但显然我们并没有解决问题。我继续codelab,发现在命令行里输入docker的任何命令都会得到这个错误:“error during connect: In the default daemon configuration on Windows”。在网上一番搜索折腾后,我觉得可能是WSL的问题。文档里说一定要安装WSL 2。"WSL"细节我也不是很清楚,我的理解是一个让linux内核跑在windows上的东西。之前也确实没仔细想,不然怎么做到让linux的image跑在windows上呢?不过docker安装的过程中也没有什么说明和提示,对于我这种不懂Hyper-V,WSL的小白来说太不友好了。

  1. 那就按照安装微软的文档来安装WSL2。推荐的方法是运行“wsl --install”一键安装,但我这边失败了。失败了就用文档里手动安装的方法。这次顺利安装完成。我顺手安装了Debian的发行版。顺利在windows上启动debian:

docker: error during connect: in the default daemon configuration on windows,docker,Troubleshooting,docker,windows,node.js,Powered by 金山文档

我不确定为了启动docker需不需要装一个发行版。我理解应该是不用的,装完WSL2就完事了。各位朋友们可以试一下。

  1. 回到docker,重新启动一下docker desktop,确认是在用linux container。继续codelab,这次问题就都解决了。codelab完成的样子:

docker: error during connect: in the default daemon configuration on windows,docker,Troubleshooting,docker,windows,node.js,Powered by 金山文档

这个todo app感觉还是非常好用的。我自己工作真的会用。

  1. 后续。关docker desktop的时候又出了个问题,就顺便也写在这里吧。docker卡在“Docker desktop stopping”了。。。我也真是佛了。感觉docker在windows上还真是问题挺多的。github上找到一个方法,试了下可行。在docker desktop --> Troubleshoot --> Clean / Purge data里把WSL 2 data set给删了。不过点了删除后等了挺长时间。

docker: error during connect: in the default daemon configuration on windows,docker,Troubleshooting,docker,windows,node.js,Powered by 金山文档

总结

  • 如果要在windows上的docker跑linux的image,一定选Linux container。

  • 在windows环境下装docker要跑linux container的话,一定要先装wsl 2。

  • 感觉docker用起来还是会碰到不少问题的,尤其是windows上。(当然也是因为在下比较小白)。大家碰到问题还是要具体分析。

希望这篇记录对大家有所帮助~文章来源地址https://www.toymoban.com/news/detail-782487.html

到了这里,关于[Docker/Windows] error during connect: In the default daemon configuration on Windows的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包