为什么在 WSL 中禁用了 systemd?

San*_*gde 32 ubuntu kubernetes windows-subsystem-for-linux minikube ubuntu-18.04

没有任何 systemd 命令在 WSL(Ubuntu Bash 18.04)中工作。当我跑时sudo systemctl is-active kubelet,错误是output: System has not been booted with systemd as init system (PID 1). Can't operate. : running command: sudo systemctl is-active kubelet

如何在 WSL 中启用 systemd 功能?有什么办法摆脱System has not been booted with systemd

小智 24

目前 WSL 不支持 Systemd。可以在此 GitHub 问题 中找到更多信息。

此外,Docker(在撰写本文时)并没有在 WSL 之上工作,这意味着 Kubelet 不会有太大用处。为了在本地运行 Kubernetes,您可以使用包含 Kubernetes 支持的Docker for Windows,或者您可以使用Minikube运行带有 Hyper-V 或 Virtualbox 的 VM。

  • Docker 现在对 WSL 提供实验性支持:https://docs.docker.com/docker-for-windows/wsl-tech-preview/ (6认同)

小智 23

现在你可以尝试:

sudo service docker start
Run Code Online (Sandbox Code Playgroud)

使用 WSL2 时,如果您在 Windows 2004 或更高版本上运行(我假设)。

  • 这适用于所有其他已安装的服务,例如 apache、memcached 等。您也可以执行此 WSL (1)。 (3认同)

小智 7

Windows Subsystem for Linux (WSL) 2 引入了重大的架构变化,因为它是由 Microsoft 构建的完整 Linux 内核,允许 Linux 容器在无需模拟的情况下本机运行。

在安装 Docker Desktop WSL 2 后端之前,您必须完成以下步骤:

安装 Windows 10 版本 1903 或更高版本。在 Windows 上启用 WSL 2 功能。

来源 - Docker Desktop WSL 2 后端

若要了解您的设备正在运行哪个版本的 Windows,请按 Windows 徽标键 + R,winver在“打开”框中键入,然后选择“确定”。

WSL 不支持 Systemd,但此脚本有一个解决方法,可以在 Windows 商店中的当前 Ubuntu WSL2 映像上启用 systemd 支持