为什么Docker服务会停止?

5

我在Windows 10上使用Ubuntu子系统。

我按照以下步骤在Linux上安装了Docker: https://docs.docker.com/install/linux/docker-ce/ubuntu/

现在我正在测试hello-world应用的步骤:

$ sudo docker run hello-world

我在哪里遇到了这个错误:

docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.

我已经缩小了问题范围,发现实际上是服务未运行,尽管网上有很多其他的解决方案,可以更或少地修复这种类型的错误。

当我检查状态时:

$ sudo service docker status
* Docker is not running

它显示未运行,所以我成功地启动了它:

$ sudo service docker start
* Starting Docker: docker                                                                                       [ OK ]

如果我立即检查状态,它会显示正在运行。但是当我在几秒钟后再次检查时,它没有在运行:

$ sudo service docker status
* Docker is running

$ sudo service docker status
* Docker is not running

为什么Docker服务会停止,如何使其保持运行状态?
2个回答

3
你得到的结果如预期。
Microsoft不支持在WSL实例中运行Docker守护程序(也称为服务)。您可以参考this discussion
您可以在WSL中使用docker client连接到远程docker引擎,这意味着docker daemon仍在其他PC上。
但是,如果您使用的是WSL2,该版本于2019年5月6日发布,那么根据Microsoft的声明,就可以实现以下功能(此公告中还有演示可供参考):

今天我们推出了Windows子系统最新架构:WSL 2!这种新架构的变化将允许:显著提高文件系统性能和完全的系统调用兼容性,这意味着您可以在WSL 2中运行更多的Linux应用程序,例如Docker。


你知道哪个版本的Windows支持WSL2吗?有评论提到了1903,但我不认为那是最终版本。 - Espen
说实话,我还没有尝试过,但是从这个讨论中,有一个人说:“昨晚与微软支持人员交谈,她说它将在5月21日的Windows更新中自动更新到WSL2。”似乎需要更新补丁...原始的1903肯定不支持,因为它只发布了2个月。 - atline


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接