docker - Docker 无法在 Windows 上运行 Ubuntu 20.04
问题描述
我目前正在尝试通过 Ubuntu 20.04 下载 Hyperledger Fabric。我通过windows商店下载了ubuntu。我还下载了 docker desktop 并为 Ubuntu 设置了 WSL 2 后端。但是,在通过 ubuntu 终端安装 docker.io 之后,使用
sudo apt-get install docker.io
我试图启用它。由于 ubuntu 使用的是 Sysvinit 而不是 systemd,因此我使用以下内容尝试启用 docker。
sudo service docker start
返回
docker: unrecognized service
我是 linux 新手,所以任何我错过的可以解决这个问题的建议或任何明显的东西都将不胜感激
谢谢
解决方案
在 WSL 中运行的 ubuntu 发行版在关键方面与普通 ubuntu 不同。其中之一是它没有标准的 linux 初始化系统。
service:启动 SysV init 系统中定义的服务。如果您执行 ls /etc/init.d/ 您将看到服务。当我查看我的 WSL 安装时,我看到了 cron。所以这有效(但可能无法在重启后存活):
sudo 服务 cron 启动
docker 没有初始化脚本,所以这行不通。
systemctl (systemd):启动 systemd 系统中定义的服务。这可能是您想要的,除非您运行:
sudo systemctl 启动泊坞窗
你得到:
System has not been booted with systemd as init system (PID 1). Can't operate.
因此,您需要手动启动 docker,而不是使用正常的初始化系统。
这使我们得到了真正的答案:
https://docs.docker.com/docker-for-windows/wsl/
根据 docker docs,您不会在 linux 上将 docker 作为服务运行。在 Windows 上安装 docker 并让它与 WSL 上的 docker 引擎交互以运行您的容器。
推荐阅读
- google-sheets - 当我将多行文本粘贴到 Google 电子表格时,为什么这些行有时会放置一个单元格?
- .htaccess - .htaccess - 使用 PHP GET 变量重写和重定向博客 URL
- tensorflow - 无法将 NumPy 数组转换为张量
- swift - 在 Swift 中使用 Codable 时如何保持灵活的结构
- c++ - 我如何获得优先队列堆的第 x 个最大值和第 y 个最小值?
- node.js - Nodemailer:设置配置以从自定义电子邮件发送电子邮件
- spring - @Configuration 和 @Component 之间的行为差异
- scala - 通过 akka 流链接上下文
- api - 什么是 SBLineEntry.GetLine()?
- latex - LaTeX:包 biblatex 警告:在 .bbl 中根本找不到引用“refname”,无法生成参考书目标签