本人在WSL虚机AlmaLinux9上已安装docker,但显然不知该如何启动,使用 sudo systemctl start docker是不可能的,自然会提示“System has not been booted with systemd as init system (PID 1). Can't operate.”使用sudo service docker status居然也不行,提示"sudo: service: command not found"如下图所示,如何启动?请教高手!
基于new bing的编写:
由于WSL虚机AlmaLinux9是基于CentOS的,而CentOS使用的是systemd进行进程管理,而WSL又是运行在Windows上的,因此无法直接使用systemd进行docker的启动和管理。你可以使用以下命令来启动docker服务:
sudo /etc/init.d/docker start
如果提示没有权限,可以尝试使用sudo执行该命令,如果还是不行,可以尝试使用以下命令:
sudo chmod 777 /var/run/docker.sock
然后再次执行启动docker服务的命令即可。
在WSL (Windows Subsystem for Linux) 虚拟机中,由于其与宿主系统之间的架构差异,一些系统命令和服务可能无法直接使用。在WSL中运行Docker时,需要使用一些特定的命令。
要在WSL中启动Docker,请按照以下步骤操作:
打开WSL终端。
确保已安装Docker。可以运行以下命令检查:
docker --version
如果返回Docker的版本信息,则表示Docker已正确安装。
启动Docker守护进程。在WSL中,可以使用以下命令启动Docker:
sudo dockerd
这将启动Docker守护进程,并将其保持在前台运行。你可以在终端中看到相关的日志信息。
打开另一个终端窗口,可以使用Docker客户端来管理Docker。在新的终端窗口中,可以运行以下命令来验证Docker是否正在运行:
docker ps
如果Docker正在运行,将显示当前正在运行的容器列表。如果显示空白,表示Docker尚未启动或没有正在运行的容器。
这些步骤应该能帮助你在WSL中启动Docker。请注意,WSL在运行Docker方面可能会有一些限制和特殊要求,因此,如果遇到其他问题,可以参考WSL官方文档或社区支持来获取更多帮助。
以下答案由GPT-4.5Plus大模型(语音)与博主A努力中.......共同编写:
在WSL(Windows Subsystem for Linux)中,是无法直接使用systemctl和service来管理服务的,因为WSL不是一个完整的Linux系统,它没有初始化系统(init)和系统服务管理器(systemd)。
在WSL中启动Docker服务,有以下两种方法:
bash
sudo dockerd
这会在后台启动Docker服务,可以使用docker ps等命令进行验证。
bash
sudo vim /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
[Service]
ExecStart=/usr/bin/dockerd
Restart=always
StartLimitIntervalSec=0
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
[Install]
WantedBy=multi-user.target
bash
sudo systemctl daemon-reload
bash
sudo systemctl start docker
bash
sudo docker ps
这会将Docker作为一个systemd服务在WSL中运行,可以使用systemctl start/stop/restart对其进行管理。
系统尚未以systemd作为初始系统(PID 1)启动。无法操作。”
sudo:service:找不到命令
根据报错中文释义,分析很有可能是你在WSL中安装Docker时未正确配置环境变量导致的。
提供下面参考思路:
1、通过命令:sudo docker run -it --name my-container my-image,检查Docker已经正确安装并启动
2、通过命令:sudo apt-get update 和sudo apt-get install sudo,检查sudo是否正确安装
3、通过命令:sudo dpkg-query -L sudo,检查sudo的配置
4、用root用户身份运行命令:sudo service docker status
最后还是不行的话,可借鉴下面链接中的实例,重新安装WSL或升级WSL到最新版本
参考实例,连接:https://blog.csdn.net/avatar_2009/article/details/110517569
在WSL虚拟机中使用docker,需要使用Docker Desktop for Windows或者Docker Desktop for Mac进行安装和管理操作。因此,在AlmaLinux9中直接使用systemctl、service等命令不能正确启动docker。
您可以尝试以下步骤来安装并使用Docker Desktop for Windows或Mac:
安装WSL2并启用Windows的虚拟化功能。
手动下载Docker Desktop for Windows或Mac的安装包,并按照提示完成安装。
启动Docker Desktop,并在终端中输入docker命令以验证是否成功安装。
您还需要启用WSL2后Docker Desktop的连接,默认情况下它不会自动连接,请将wsl2设置为默认。
如果您不是使用Docker Desktop,则还需要在WSL上手动安装docker-ce(社区版),具体操作方法可以参考Docker官方文档。
WSL2下运行Docker
步骤非常详细,可以参考下
https://blog.csdn.net/avatar_2009/article/details/110517569
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
在WSL虚机AlmaLinux9上,由于它不使用systemd作为默认初始化系统,因此不能使用systemctl来启动docker服务。相反,您可以使用以下命令启动docker服务:
使用sudo命令以root用户身份登录到虚拟机终端:
sudo su
2.使用以下命令启动docker服务:
/etc/init.d/docker start
通过运行以下命令验证容器是否正在运行:
docker ps
您还可以将docker服务添加到开机启动项中,以便在每次启动虚拟机时自动启动docker服务。您可以按照以下步骤进行操作:
编辑/etc/rc.local文件:
sudo vi /etc/rc.local
在文件底部添加以下内容:
/etc/init.d/docker start
保存并退出文件。
确保rc.local文件可执行:
sudo chmod +x /etc/rc.local
现在docker服务将在每次虚拟机启动时自动启动。
如果我的回答解决了您的问题,请采纳!
借鉴chatgpt:
看起来您的虚拟机AlmaLinux9上并没有systemd,因此无法使用 systemctl 命令。您可以尝试使用以下命令来检查 Docker 是否已安装并运行:
sudo docker version
如果 Docker 已经安装但没有运行,您可以使用以下命令来启动它:
sudo service docker start
如果系统没有安装 service 命令,则可能需要先安装它。您可以使用以下命令来安装 service 命令:
sudo yum install -y systemd-sysv
安装完成后,您可以再次尝试启动 Docker 服务。