Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >安装服务启动报错Failed to get D-Bus connection: Operation not permitted

安装服务启动报错Failed to get D-Bus connection: Operation not permitted

原创
作者头像
张琳兮
修改于 2021-02-25 02:13:05
修改于 2021-02-25 02:13:05
13.9K0
举报
文章被收录于专栏:首富手记首富手记

安装服务启动报错Failed to get D-Bus connection: Operation not permitted

代码语言:txt
AI代码解释
复制
作者:张首富
w x:y18163201
时间:2021-02-24

今天别人给我了一个 linux 主机的远程登录方式,让我上去帮他安装个 docker。这么简单的事情不是手到擒来吗。于是开始搞

代码语言:txt
AI代码解释
复制
1,查看下系统版本
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
2, 查看下磁盘分区情况
# df -Th
Filesystem                                                                                            Type   Size  Used Avail Use% Mounted on
/dev/mapper/docker-253:2-12888033817-9f12171102a5151e4f0a6b77bb496f6446352e34b3b1ca35888b4eeb81ebd916 xfs     10G  1.1G  9.0G  11% /
tmpfs                                                                                                 tmpfs   64M     0   64M   0% /dev
tmpfs                                                                                                 tmpfs   63G     0   63G   0% /sys/fs/cgroup
/dev/mapper/centos-home                                                                               xfs    3.6T  355G  3.3T  10% /home
/dev/mapper/centos-root                                                                               xfs     50G   36G   15G  71% /etc/yum.repos.d
shm                                                                                                   tmpfs   64M     0   64M   0% /dev/shm

准备工作完成,于是开始安装

代码语言:txt
AI代码解释
复制
# 在线安装 docker 使用的是 docker 最新版本 19.03
  curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  # 创建配置文件
  mkdir -p /home/dockerd
  mkdir -p /etc/docker/
cat >> /etc/docker/daemon.json <<-'EOF'
{
  "graph": "/home/dockerd",
  "data-root": "/home/dockerd",
  "storage-driver": "overlay2",
  "exec-opts": ["native.cgroupdriver=systemd"],
  "live-restore": true,
  "hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"],
  "log-driver":"json-file",
  "log-opts":{ "max-size" :"100m","max-file":"10"}
}
EOF

然后当我准备给他说安装好了的时候,启动报错了

代码语言:txt
AI代码解释
复制
# systemctl start docker
Failed to get D-Bus connection: Operation not permitted

然后就懵逼了。赶紧 google

通过查阅资料:

Docker的设计理念是在容器里面不运行后台服务,容器本身就是宿主机上的一个独立的主进程,也可以间接的理解为就是容器里运行服务的应用进程。一个容器的生命周期是围绕这个主进程存在的,所以正确的使用容器方法是将里面的服务运行在前台。

再说到systemd,这个套件已经成为主流Linux发行版(比如CentOS7、Ubuntu14+)默认的服务管理,取代了传统的SystemV风格服务管理。systemd维护系统服务程序,它需要特权去会访问Linux内核。而容器并不是一个完整的操作系统,只有一个文件系统,而且默认启动只是普通用户这样的权限访问Linux内核,也就是没有特权,所以自然就用不了!

因此,请遵守容器设计原则,一个容器里运行一个前台服务!

发现都是在 docker 里面才会出现这个问题,是因为不是特权模式,看到这我就有点明白了,这个人怕是给我一个 docker 容器让我给他安装 docker 吧。

自己找机器实验

代码语言:txt
AI代码解释
复制
# docker exec -it -p 8888:22 --name test --rm centos:centos7.6.1810 bash
# yum -y install openssh-server
# ssh-keygen -A
# /usr/sbin/sshd
# passwd

然后在开个窗口去连接 8888 端口,安装服务启动的时候果不其然的报错和上图一样。我就推测他给我的是一个docker 启动的 centos

但是想在容器中使用systemctl来管理包难道就没办法了吗?那肯定不是,我们只需要使用特权模式启动即可--privileged=true,经过确定他给我的确实是一个在 docker 里面的系统。

疑问:

回头观察他给我的系统文件系统格式如下

代码语言:txt
AI代码解释
复制
# df -Th
Filesystem                                                                                            Type   Size  Used Avail Use% Mounted on
/dev/mapper/docker-253:2...6 xfs     10G  1.1G  9.0G  11% /
tmpfs                                                                                                 tmpfs   64M     0   64M   0% /dev
tmpfs                                                                                                 tmpfs   63G     0   63G   0% /sys/fs/cgroup
/dev/mapper/centos-home                                                                               xfs    3.6T  355G  3.3T  10% /home
/dev/mapper/centos-root                                                                               xfs     50G   36G   15G  71% /etc/yum.repos.d
shm                                                                                                   tmpfs   64M     0   64M   0% /dev/shm

但是我们启动的 docker 文件系统格式如下:

代码语言:txt
AI代码解释
复制
# df -Th
Filesystem     Type     Size  Used Avail Use% Mounted on
overlay        overlay 1008G  143G  815G  15% /
tmpfs          tmpfs     64M     0   64M   0% /dev
tmpfs          tmpfs    3.9G     0  3.9G   0% /sys/fs/cgroup
shm            tmpfs     64M     0   64M   0% /dev/shm
/dev/sdb       ext4    1008G  143G  815G  15% /etc/hosts
tmpfs          tmpfs    3.9G     0  3.9G   0% /proc/acpi
tmpfs          tmpfs    3.9G     0  3.9G   0% /proc/scsi
tmpfs          tmpfs    3.9G     0  3.9G   0% /sys/firmware

会发现文件的跟系统格式不一样。他的格式为 xfs,但我们的却是overlay,不知道他是如何实现的。

现在还在询问中,要是有知道的大佬提示给我说下谢谢

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CentOS7默认安装的/home中转移空间到根目录/ - LVM操作简明教程
转自 http://blog.csdn.net/evandeng2009/article/details/49814097
@凌晨
2020/05/28
3.2K0
CentOS7默认安装的/home中转移空间到根目录/ - LVM操作简明教程
Centos对home目录进行扩容
-- 通过df -h 查看,/home目录大小不足。通过增加一块硬盘,扩大/home大小。
jwangkun
2022/01/09
6.6K0
Centos7 将home空间分配给根目录(/dev/centos/root)
根据:Free PE / Size 33159 / <129.53 GiB判断 可用空间为129.53 GiB
IT小马哥
2024/09/29
9110
CentOS7挂载NAS共享存储
记一次在centos7下挂载惠普nas存储的操作,这台惠普nas存储的访问协议有两种:CIFS和NFS,本次采用nfs协议 环境介绍: NSA存储:HP Store Once 3540 采用协议:NFS 磁盘容量:500G 挂载路径:10.1.1.133:/nas/nfs-ts 操作系统:centos7 1.在nas上创建共享存储 2.在操作系统上安装依赖包 [root@localhost]$ yum install -y samba samba-client nfs-utils [root@loc
染指流年
2023/03/13
6.5K0
CentOS7挂载NAS共享存储
linux扩容(增加硬盘)并挂载
当Linux系统的硬盘空间不够时,我们需要添加新的硬盘。本文物理添加硬盘的方法略过,只介绍在linux系统的分区、格式化和挂载的内容。
用户9949933
2023/02/24
14.3K0
Centos缩容home磁盘空间到根目录/下操作
自己在家里老笔记搭建的CentOS7系统用来跑一些服务,前段时间通过samba共享存储把小米摄像头视频进行实时转存到笔记本上,最近发现磁盘不足了,因为我默认是挂载到根目录下的,以前安装操作系统时把所有空间分配给了/home目录下,现在根目录的磁盘空间,又不想更改目录,所以打算把/home目录的空间腾出挂载给根目录,于是有了本篇文章。
Lcry
2022/11/29
2.2K0
docker - 占满根目录空间的解决方案
Docker 默认会占用根目录的空间,时间久了就会吧根目录占满,本文记录解决方案。 问题复现 不知不觉根目录已经没有空间,ls 的补全都会报错。 cannot create temp file for here-document: No space left on devic 可以看到 /已经没有空间了 $ df -h Filesystem Size Used Avail Use% Mounted on udev
为为为什么
2022/08/05
1.6K0
K8s上用cephfs存储
前言 k8s对ceph rbd模式不支持ReadWriteMany(RWX),为了满足k8s的灵活性需求,采用支持多点挂载的cephfs工作模式
院长技术
2020/06/11
1.5K0
root盘满了怎么办
# 问题 /dev/mapper/centos-root 占用100%导致Tab键用不了,而且docker微服务应用的验证码出不来 [root@summer ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 63G 0 63G 0% /dev tmpfs 63G 24K 63G 1% /dev/shm t
summerking
2022/10/27
1.9K0
linux磁盘已满,查看那个目录文件最占磁盘空间并解决没有内存不耗费资源删除
然后那个目录占用多 再通过du -s /root/* | sort -nr 一层层排查,找到占用文件多的地方
iginkgo18
2022/05/09
2.5K0
Linux下对lvm逻辑卷分区大小的调整(针对xfs和ext4不同文件系统)
当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间。如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区),那么就可以轻松进行扩容或缩容!不同文件系统类型所对应的创建、检查、调整命令不同,下面就针对xfs和ext2/3/4文件系统的lvm分区空间的扩容和缩容的操作做一记录: ----------------------------------------------------------------------
洗尽了浮华
2018/01/22
4.3K0
linux LVM逻辑卷的创建,扩容,缩减和删除
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
用户4877748
2020/07/22
7.8K0
linux  LVM逻辑卷的创建,扩容,缩减和删除
为什么构建容器需要 Namespace
Namespace 是 Linux 内核的一个特性,该特性可以实现在同一主机系统中,对进程 ID、主机名、用户 ID、文件名、网络和进程间通信等资源的隔离。Docker 利用 Linux 内核的 Namespace 特性,实现了每个容器的资源相互隔离,从而保证容器内部只能访问到自己 Namespace 的资源。
Se7en258
2021/05/18
1.6K0
为什么构建容器需要 Namespace
Pytorch dataloader 错误 “DataLoader worker (pid xxx) is killed by signal” 解决方法
在使用 pytorch dataloader 时,出现了当把num_workers 设置不为0即报错的问题,本文记录两种此类错误的解决方案。 Dataloader - num_workers Pytorch 中加载数据的模块Dataloader有个参数num_workers,该参数表示使用dataloader时加载数据的进程数量,可以理解为为网络搬运数据的工人数量; 所以如果dataloader比较复杂,工人多的时候自然可以节省大量数据加载时间,他们可以在网络训练时同时进行数据加载工作,等网络
为为为什么
2022/08/05
5.4K0
虚拟机vmware centos7 扩展磁盘空间
创建一个新的逻辑分区,将新的逻辑分区格式化ext3(或其他类型)的文件系统,mount到磁盘空间不够的文件系统,就跟原来的分区/文件系统一样的使用
程裕强
2022/05/06
1.4K0
虚拟机vmware centos7 扩展磁盘空间
linux基础命令介绍十二:磁盘与文件系统
本篇讲述磁盘管理相关的命令。计算机中需要持久化存储的数据一般是保存在硬盘等辅助存储器中。硬盘一般容量较大,为了便于管理和使用,可以将硬盘分成一到多个逻辑磁盘,称为分区;为使分区中的文件组织成操作系统能够处理的形式,需要对分区进行格式化(创建文件系统);在linux中,对于格式化后的分区,还必须经过挂载(可简单理解为将分区关联至linux目录树中某个已知目录)之后才能使用。
用户5030870
2019/04/11
5.1K0
linux基础命令介绍十二:磁盘与文件系统
CentOS 8合并home分区到root
新装CentOS的时候,选择了默认分区方案。300G的硬盘,装完后发现默认会分配50G到/root目录下,然后分配一些其他的目录,剩下的都会分配给/home目录。
Qwe7
2022/01/30
1.6K0
一次线上服务器磁盘耗尽的问题排查处理
发现很多文件是删除的状态,但是空间还未释放,应该是有进程还在使用这些文件,导致这些以被删除的文件一致被占用,无法释放磁盘空间。
IT云清
2019/07/10
7550
salt-ssh批量操作记录
根据以往运维工作中操作经验来说,当管理上百台上千台服务器时,选择一款批量操作工具是及其有必要的。 早期习惯于在ssh信任关系的前提下做fo;do;done循环语句的批量操作,后来逐渐趋于使用批量工具操作: 1)pssh工具,它需要提前做好key关联的ssh信任关系,比起for循环语句,我之前还是比较喜欢用pssh。     具体用法见于:http://www.cnblogs.com/kevingrace/p/6378719.html 2)expect 最大的有点就是交互,但是要成高性能的话,需要自己写多线程
洗尽了浮华
2018/01/23
1.6K0
使用脚本快速初始化VMware下Linux虚拟机新增数据盘
这个 scan 属性支持以"-"作为通配符,如以下命令可以执行让整个 scsi_host 进行重新搜索, 这个功能用于调试某些对热插拔实现不完善的 SCSI 驱动程序很有用
yuanfan2012
2020/11/10
1.1K0
使用脚本快速初始化VMware下Linux虚拟机新增数据盘
推荐阅读
相关推荐
CentOS7默认安装的/home中转移空间到根目录/ - LVM操作简明教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档