【Docker】Docker容器使用systemctl命令出现"Failed to get D-Bus connection: Operation not permitted"错误

 

  编者在使用Docker容器部署服务的时候,用的是CentOS的的的镜像,所以在这里就以CentOS的的的为例。

刚开始,编者在制作的Apache服务多克尔容器时,发现在使用systemctl命令启动服务时,就会出现错误。

[-> ~ Scong ] docker exec -it s1k3b3jwj4 bash
[-> ~ Scong ] yum -y install httpd
[-> ~ Scong ] systemctl start httpd
    Failed to get D-Bus connection: Operation not permitted

在网上也是有许多的方法,可能每个人的做法不一,但是都能解决所遇到问题。

如果我们从Docker容器的概念去理解,或许就会知道,其实Docker一个就是独立的主进程,的英文服务在容器内所运行的。但是的英文它不请立即获取iTunes服务在后台运行服务的。所以如果我们想使用就要需要将泊坞窗内的服务在前台运行

百度百科我们可以得知,Docker并不是一个完整的系统,它只是一个附加系统,使用文件系统来进行不同层的构建。这也就意味着如果我们需要启动服务,我们就需要授权给Docker容器。这样一来,我们才可以让容器内的服务在前台运行。

在看看网上的一些解决方法以及对码器容器的了解。于是编者就在命令行寻找docker run的“ - help”帮助,然后发现确实有许多的参数,在接近末端发现一个参数

[-> ~ Scong ] docker run --help
    ... ...
     --privileged     Give extended privileges to this container
    ... ...

意思就是:“ - 享有特权的将扩展权限授予此容器”,这样一来解决的办法就出来了,在启动容器的时候加上这个选项参数即可!

[-> ~ Scong ] docker run --privileged -itd -e "container=docker" -v /sys/fs/cgroup:/sys/fs/cgroup  centos  /usr/sbin/init

-e:设置环境变量

-v:将容器内的内核与本地的内核文件进行绑定

/ usr / sbin目录/初始化让宿主机重启立刻生效

 

本文旨在提供参考,如有错误,欢迎大家指正。帮助编者不断的改进!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值