背景
我在学习 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”
过程
安装完docker desktop一打开就一直在"docker desktop starting"。等了好长时间也没有好。
这个网上找到很多解决方案,在命令行里运行:
cd "C:\Program Files\Docker\Docker"
./DockerCli.exe -SwitchDaemon
或者直接在docker desktop 这个选项里设置。
设置之后确实成功启动了。
然后玩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。上面过程中的方法对我来说并不解决问题啊。
很神奇的是先切到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的小白来说太不友好了。
那就按照安装微软的文档来安装WSL2。推荐的方法是运行“wsl --install”一键安装,但我这边失败了。失败了就用文档里手动安装的方法。这次顺利安装完成。我顺手安装了Debian的发行版。顺利在windows上启动debian:
我不确定为了启动docker需不需要装一个发行版。我理解应该是不用的,装完WSL2就完事了。各位朋友们可以试一下。
回到docker,重新启动一下docker desktop,确认是在用linux container。继续codelab,这次问题就都解决了。codelab完成的样子:
这个todo app感觉还是非常好用的。我自己工作真的会用。
后续。关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上。(当然也是因为在下比较小白)。大家碰到问题还是要具体分析。文章来源:https://www.toymoban.com/news/detail-782487.html
希望这篇记录对大家有所帮助~文章来源地址https://www.toymoban.com/news/detail-782487.html
到了这里,关于[Docker/Windows] error during connect: In the default daemon configuration on Windows的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!