在Ubuntu 22.04 Docker容器中,执行systemctl命令报错:System has not been booted with systemd as init system (PID 1). Can't operate. 如何解决?
时间: 2023-08-25 20:15:16 浏览: 376
在Docker容器中执行`systemctl`命令报错是因为容器中没有运行`systemd`作为init系统。在容器内部,`systemctl`命令是不可用的。
然而,你可以通过使用`service`命令来代替`systemctl`来管理服务。下面是一些常用的`systemctl`命令和它们对应的`service`命令:
- `systemctl start <service>` 替代为 `service <service> start`
- `systemctl stop <service>` 替代为 `service <service> stop`
- `systemctl restart <service>` 替代为 `service <service> restart`
- `systemctl enable <service>` 替代为 `service <service> enable`
- `systemctl disable <service>` 替代为 `service <service> disable`
- `systemctl status <service>` 替代为 `service <service> status`
例如,如果你想启动一个名为`my_service`的服务,可以使用以下命令:
```
service my_service start
```
请注意,这只是一个在Docker容器中使用的替代方案。如果需要在容器中运行`systemd`作为init系统,可能需要使用更高级的技术和配置,例如使用systemd-nspawn或者基于systemd的容器系统。
阅读全文