开发者社区> 微雨燕双飞!> 正文

docker容器内无法使用systemctl

简介:
+关注继续查看

问题:
在docker容器中使用systemctl命令报错

powershell
[root@707a5892dae2 /]# systemctl start nginx
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down


解决办法:
运行容器时添加`--privileged=true`,修改/bin/bash为/sbin/init
[root@919 ~]# docker run -itd --name nginxv2 --privileged=true centos /usr/sbin/init 

验证:
powershell
[root@919 ~]# docker exec -it nginxv2 /bin/bash
[root@491ab139e4fd /]# systemctl start nginx
[root@491ab139e4fd /]# ps -ef |grep nginx
root         187       1  0 02:32 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx        188     187  0 02:32 ?        00:00:00 nginx: worker process

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用容器运行go程序
使用Linux服务器搭建容器运行go程序
574 0
Docker 与 K8S学习笔记(二十)—— 使用Downward API向容器注入Pod信息
Kubernetes在创建Pod时,会为Pod和容器设置一些额外的信息,比如Pod名称、Pod IP、Node IP、Label、Annotation、资源限制等,我们经常会在应用程序中使用到这些数据,比如利用Pod名称作为应用日志的字段,方便分析日志。为了能在容器内获取这些信息,我们可以使用Dow
30 0
使用容器编排工具docker swarm安装clickhouse多机集群
1.首先需要安装docker最新版,docker 目前自带swarm容器编排工具 2.选中一台机器作为master,执行命令sudo docker  swarm init [options] 3,再需要加入集群的集群上执行此命令   4.
3529 0
使用Systemd运行Docker容器
本文讲的是使用Systemd运行Docker容器,【编者的话】现今Docker的每个主要发行版都在转移到Systemd上,使用Systemd运行Docker更有便于主机系统初始化以及进程管理等。但Systemd在监控容器上有一弊端,它不监控容器,而监控的是客户端,导致了若客户端与容器脱离联系后无论容器是否运行正常Systemd均会将该容器停掉等问题。
1875 0
自定义String类,并且实现在STL容器中添加自定义的类型
13.44 编写标准库string类的简化版本,命名String。你的类应该至少有一个默认构造函数和一个接受C风格字符串指针参数的构造函数。使用allocator为你的String类分配所需内存。 13.47 添加拷贝构造函数和拷贝赋值运算符,并添加打印语句,则每次函数执行时打印一条信息。
632 0
11
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载