关于Docker中出现Failed to get D-Bus connection且--privileged也不管用的问题

简单讲就是不要用centos:7而要用centos:centos7.9.2009

一些小众的科研软件非常古老,兼容性极低,在较常用的ubuntu、manjaro、centos8下很难装,只能生活在docker中。但他们经常在服务器中开发更新的版本,有的时候服务器系统升级了,新版本的软件就不兼容原来旧的docker。就很烦。

最近想把官方的docker从sl6改到centos7,从而适应更新一点的软件。遇到了这样的问题:


Failed to get D-Bus connection: Operation not permitted

我从docker hub上pull了centos:7的镜像,由于不熟悉docker以及Dockerfile,所以只是在容器内部操作。使用的物理机是centos7的环境。

在使用cvmfs安装我需要的软件环境的过程中,需要开启一个叫做autofs的service,systemctl start autofs之后,系统报错:

Failed to get D-Bus connection: Operation not permitted

这一报错在网上很容易查到,并且高度一致,都说是这个容器运行的权限不够,需要加上--privileged或者--privileged=true,并且运行/sbin/init才行:

事由:通过 systemctl start crond 启动任务时报错,具体如下
Failed to get D-Bus connection: Operation not permitted
解决方法:
启动容器时指定参数 --privileged=true 并执行命令 /usr/sbin/init,完整如下

 docker run -d --privileged=true --name centos7 centos /usr/sbin/init

然后通过 docker exec -it centos7 /bin/bash 进入容器操作

——原文:https://blog.csdn.net/w_yunlong/article/details/76460997

但是这样的操作仍然不能解决我的问题。

如果将这个容器在MacOS上运行,会出现类似的问题,Job for ssh.service failed because the control process exited with error code,总之autofs服务没办法正常启动。其他服务也是这样,例如sshd。

最后折腾很久,在犄角旮旯里找到了一篇博客,具体是哪一篇我记不得了,总之就是说这是Centos7这个版本的bug,去用Centos7.2的镜像就可以了。

干脆pull了centos:centos7.9.2009,发现问题解决了。。。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值