文档章节

Failed to get D-Bus connection: Operation not permitted , docker安装centos7之坑

雪饼
 雪饼
发布于 2017/06/04 22:58
字数 604
阅读 348
收藏 1

当使用docker安装centos:7镜像或centos:latest后,如果执行systemctl时,会出现以下问题

[root@68903c5fbdeb /]# systemctl stop firewalld.service
Failed to get D-Bus connection: Operation not permitted

这是docker中centos7的bug,官网上也提到了这个问题,Docker的官方CentOS镜像中没有提供systemd服务,并给出了 解决办法,虽然复杂了一点,还是可以处理的。

1、创建systemd的base image

新建一个文件 Dockerfile,这是构建docker镜像时默认读取的文件名称,也可以使用其它文件名,然后在构建时使用 -f 指定文件名即可

vi Dockerfile

输入以下内容

FROM centos:latest
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]

执行创建镜像命令(注意:记得命令最后要加个空格和点,否则会报错)

docker build --rm -t centos:c7-systemd .

2、基于该镜像创建http服务的镜像

重新编辑Dockerfile文件

vi Dockerfile

删除原来的内容,输入以下内容

FROM centos:c7-systemd
RUN yum -y install httpd; yum clean all; systemctl enable httpd.service
EXPOSE 80
CMD ["/usr/sbin/init"]

构建docker镜像(注意:记得命令最后要加个空格和点,否则会报错)

docker build --rm -t centos:c7-systemd-httpd .

3、使用新的镜像来创建centos7容器

记得要加上 --privileged,官方给的示例没有这个参数,执行时会报错,加上之后就不会了

docker run --privileged -it --name mycentos -d -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 centos:c7-systemd-httpd

4、进入docker容器执行systemctl

docker exec -it mycentos bin/bash

执行

systemctl start sshd.service

虽然现在没有提示 Failed to get D-Bus connection: Operation not permitted 问题,但却提示

[root@21481fb2cefc /]# systemctl start sshd.service
Failed to get D-Bus connection: No such file or directory

而查了systemctl的服务路径

ls /usr/lib/systemd/system | grep sshd.service

是存在 sshd.service 服务的,但执行systemctl却说是找不到文件,很奇怪

执行 systemctl enable sshd.service 也不行

[root@21481fb2cefc /]# systemctl enable sshd.service
Failed to get D-Bus connection: No such file or directory

这个问题还暂时找不到解决办法,后面继续研究

 

欢迎关注本人的微信公众号“大数据与人工智能Lab”(BigdataAILab),获取更多资讯

© 著作权归作者所有

共有 人打赏支持
雪饼

雪饼

粉丝 138
博文 46
码字总数 90855
作品 0
广州
Docker 报错 Failed to get D-Bus connection

Docker容器使用问题:Failed to get D-Bus connection: Operation not permitted 在CentOS7 中,docker容器中yum 安装完mysql后,启动mysqld报错 # systemctl start mysqld Failed to get D......

枫叶云
05/08
0
0
centos7 docker Failed to get D-Bus connection

systemctl start mysqld.service Failed to get D-Bus connection: Operation not permitted systemctl list-units |grep mysql Failed to get D-Bus connection: Operation not permitted 启......

xiaoxin
07/16
0
0
使用ssh连接docker容器

原文地址:http://blog.csdn.net/qq34021712/article/details/73379851 前言: 使用ssh连接docker容器,需要给docker容器先分配好ip之后才可以开启ssh服务,才能使用ssh连接 参考文章:给docke...

haoxiaoyong1014
04/19
0
0
CentOS7(1708)制作docker镜像之后,开启sshd服务失败的处理办法

最近我把公司产品迁移到了CentOS1708环境下,于是就开始制作对应的docker镜像(虽然我一直“错误”的把docker当成虚机用,用着方便就好) 制作镜像完成之后,创建的容器需要自启动sshd服务,...

fylx
2017/12/31
0
0
Docker容器使用问题:Failed to get D-Bus connection: Operation not permitted

刚开始接触Docker的朋友,可能会遇到这么一个问题,使用centos7镜像创建容器后,在里面使用systemctl启动服务报错。针对这个报错,我们接下来就分析下! # docker run -itd --name centos7 c...

李振良OK
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

angular指令监听ng-repeat渲染完成后执行自定义事件方法

今天工作中遇到需要用到ng-repeat遍历渲染完后执行某个操作,angular本身并没有提供监听ng-repeat渲染完成的指令,所以需要自己创建自定义指令。 在ng-repeat模板实例内部会暴露出一些特殊属...

孟飞阳
37分钟前
1
0
URLEncoder和URLDecoder

public static void main(String[] args) { String str1 = "https://test1-life.pingan.com/ilifecore/productMall/loading.html?productId=8000000241&channelCode=XCX00001&productCode=00......

鬼才王
47分钟前
2
0
对象及变量的并发访问-第一篇

方法内部的变量为线程安全变量 “非线程安全”问题存在于“共享变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题,所得结果也就是“线程安全”的。 package chaprer3;/**...

简心
47分钟前
1
0
程序媛眼中的程序猿原来是这样子的!

一直都想写一篇关于描述程序员的文章,但是一直没能开头,一来因为文笔不好,更主要的原因是貌似对程序员既熟悉又不熟悉,很怕写出来的是以偏概全,给大家造成对程序员的既定印象,不过,管他...

Java小铺
今天
1
0
bean标签

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 bean标签 bean标签中的init-method属性,该属性...

凯哥学堂
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部