首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在docker容器中启动服务失败,错误:未能获得D-Bus连接:没有连接到服务管理器

在docker容器中启动服务失败,错误:未能获得D-Bus连接:没有连接到服务管理器
EN

Stack Overflow用户
提问于 2015-02-13 08:29:57
回答 2查看 17.9K关注 0票数 11

我安装了码头映像,并成功地构建了一个映像。

当我对容器执行ssh并运行命令service xxx start时,会弹出一个错误:

服务开始 重定向到/bin/systemctl启动nginfra.service /sbin/service:第79行: /bin/systemctl:没有这样的文件或目录

实际上,fakesystemd是安装在容器中而不是systemd中的。

因此,我删除了fakesystemd并使用命令安装了systemd:yum交换--删除fakesystemd - installed系统-lib。

但我还是不能开始服务:

服务开始 重定向到/bin/systemctl启动nginfra.service未能获得D总线连接:没有连接到服务管理器。

有人见过并解决过这个问题吗?

EN

Stack Overflow用户

发布于 2017-03-01 14:25:21

我已经在CentOS:7 Docker容器中解决了这个问题。我主要关注CentOS码头形象工程指南

代码语言:javascript
运行
复制
FROM centos:7

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/*;

# Install anything. The service you want to start must be a SystemD service.

CMD ["/usr/sbin/init"]

现在,构建映像,并至少使用docker run命令的以下参数运行它:-v /run -v /sys/fs/cgroup:/sys/fs/cgroup:ro

然后重点是/usr/sbin/init必须是Docker容器中的第一个进程。

因此,如果您想在运行/usr/sbin/init之前使用执行某些命令的自定义脚本,请使用exec /usr/sbin/init (在bash脚本中)在脚本末尾启动它。

下面是一个示例:

代码语言:javascript
运行
复制
ADD cmd.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/cmd.sh

CMD ["/usr/local/bin/cmd.sh"]

以下是cmd.sh的内容

代码语言:javascript
运行
复制
#!/bin/bash

# Do some stuffs

exec /usr/sbin/init # To correctly start D-Bus thanks to https://forums.docker.com/t/any-simple-and-safe-way-to-start-services-on-centos7-systemd/5695/8

如果您使用PAM系统,在这种情况下,您可以在System is booting up. See pam_nologin(8)中删除/usr/lib/tmpfiles.d/systemd-nologin.conf,因为它创建了生成此特定错误的文件/var/run/nologin

票数 8
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28495341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档