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

本文档详细记录了解决Windows 10上Docker Desktop启动缓慢、运行Linux镜像出错以及退出时卡住的问题。通过切换容器类型、安装WSL 2和手动解决Docker停止卡顿的步骤,最终成功运行了Docker的codelab。建议在Windows上使用Docker运行Linux镜像前,确保选择Linux容器并安装WSL 2。

背景

我在学习 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"。等了好长时间也没有好。

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

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

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

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

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

命令行里显示“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需不需要装一个发行版。我理解应该是不用的,装完WSL2就完事了。各位朋友们可以试一下。

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

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

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

总结

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

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

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

希望这篇记录对大家有所帮助~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值