Docker 无法在 Windows 上运行 Ubuntu 20.04

标签 docker ubuntu hyperledger-fabric wsl-2

我目前正在尝试通过 Ubuntu 20.04 下载 Hyperledger Fabric。我通过windows商店下载了ubuntu。我还下载了 docker 桌面并为 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 初始化系统。

  1. service:启动SysV init系统中定义的服务。如果你执行 ls/etc/init.d/你会看到服务。当我查看 WSL 安装时,我看到了 cron。所以这有效(但可能无法重新启动):

    sudo 服务 cron 启动

    docker 没有初始化脚本,所以这不起作用。

  2. systemctl (systemd):启动systemd系统中定义的服务。这可能是您想要的,除非您运行:

    sudo systemctl启动docker

你得到:

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 文档,您不会在 Linux 上将 docker 作为服务运行。在 Windows 上安装 docker,并让它与 WSL 上的 docker 引擎交互以运行容器。

关于Docker 无法在 Windows 上运行 Ubuntu 20.04,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66009809/

相关文章:

maven - Docker 开发版本/快照

mysql - 使用 docker-compose Mysql + App

c# - 使用 Upstart 在启动时运行 Mono 应用程序

java - 线程 "main"java.lang.NoClassDefFoundError : java/util/function/Predicate 中的异常

hyperledger-fabric - 修改后如何升级链码?

go - fabric-sdk-go 'ld.exe: cannot find -lltdl' 错误

docker - 运行最新的 Docker ColdFusion 图像时浏览器请求挂起

rest - 您如何将文件(从URL)上传到Docker容器?

docker - 上次 Ubuntu 18.04 更新后损坏的 Docker

docker - super 账本结构 : Understanding Docker Containers