解决Docker Swarm集群模式下部署Centos执行Systemctl报错问题:“Failed to get D-Bus Connection: Operation not permitted“

本文主要是介绍解决Docker Swarm集群模式下部署Centos执行Systemctl报错问题:“Failed to get D-Bus Connection: Operation not permitted“,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题

在Docker Swarm模式下, 出于安全考虑, 迄今的版本都不支持privileged参数把权限完全放开,单节模式下采用docker run 命令是可以支持privileged参数, 但这样无法利用Docker Swarm集群对所有docker节点进行管理以及网络的通信配置, 这样就导致通过Docker Swarm集群部署centos容器时, 出现Failed to get D-Bus Connection: Operation not permitted等权限相关问题,网上搜索了很多资料, 都不全面, 即使centos的docker hub官方说明也没做详细描述。

解决方法

1. 单节点模式:
docker run -ti --tmpfs /tmp --tmpfs /run -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 local/centos7-systemd
2. 集群模式:

docker-compose.yml配置文件:
增加参数

volumes: - /sys/fs/cgroup:/sys/fs/cgroup:ro
tmpfs:- /tmp- /run  
cap_add:- ALL

cap_add允许我们为容器分配额外的能力,以便能够执行某些需要这些能力的任务,
为ALL代表开放所有功能,
常见的cap_add参数包括:

NET_ADMIN:允许容器修改网络配置
SYS_ADMIN:允许容器执行系统管理任务
SYS_PTRACE:允许容器使用ptrace系统调用来追踪和调试其他进程
SYS_TIME:允许容器修改系统时间
SYSLOG:允许容器写入系统日志
IPC_LOCK:允许容器锁定内存页,防止其被换出内存
SYS_RESOURCE:允许容器修改系统资源限制

配置完整示例:

在这里插入图片描述
通过 docker statck deploy -c docker-compose.yml hadoop 进行部署
进入容器, 执行systemctl status sshd, 不再报错:
在这里插入图片描述

这篇关于解决Docker Swarm集群模式下部署Centos执行Systemctl报错问题:“Failed to get D-Bus Connection: Operation not permitted“的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/605381

相关文章

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

idea npm install很慢问题及解决(nodejs)

《ideanpminstall很慢问题及解决(nodejs)》npm安装速度慢可通过配置国内镜像源(如淘宝)、清理缓存及切换工具解决,建议设置全局镜像(npmconfigsetregistryht... 目录idea npm install很慢(nodejs)配置国内镜像源清理缓存总结idea npm in

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常