在docker中使用centos镜像启动了容器并安装了相关软件,之后想用service命令启动相关服务却收到如下错误:
Failed to get D-Bus connection: Operation not permitted
通过多方搜索,根据网上给出的解决方案处理无效。后加入docker中国QQ交流群咨询,无效。最后找docker命令相关文档,终于解决了问题,赶紧记录下拉。
解决方案:
1、以后台方式启动容器:
# docker run -itd -p 15672:15672 -p 5672:5672 --privileged=true centos/rabbitmq /usr/sbin/init
-itd参数中的d指明以后台方式启动容器
-p指定宿主与容器间的端口映射
-privileged=true 设置容器中的root拥有真正的root权限
/usr/sbin/init 执行容器环境的系统init(我不确定到底是干啥,本人linux新手一枚)
特别注意,一定要加上参数d否则命令行会卡住没反应(卡了我2个多小时..........,其实容器已经启动了)。
2、通过命令连接到容器
上面的命令执行成功后,将返回容器的ID,如下:
91980c3aed0672298adc8c177fa1c2345a0d545ec85e34196895f4bdb674e258
通过下面的命令连接到容器,执行交互操作:
# docker exec -it 91980 bash
3、然后你就可以愉快的玩耍了