欢迎访问机房运维工作室

爱数知识库

AnyBackup-Docker AnyBackup 客户端容器启动 ABClientService 客户端服务失败,提示:Failed to get D-Bu_2

频道:爱数知识库 日期: 浏览:23

AnyBackup-Docker AnyBackup 客户端容器启动 ABClientService 客户端服务失败,提示:Failed to get D-Bus connection: Operat

关键字

Operation、permitted

适用产品

  • AnyBackup CDM 7.0.16.1-7.0.17
  • AnyBackup Express 7.0.16.1-7.0.17

问题描述

在完成 Docker AnyBackup 客户端安装后,客户端容器启动 ABClientService 客户端服务失败,提示如下错误:

Failed to get D-Bus connection: Operation not permitted

问题影响

Docker AnyBackup 客户端无法在 AnyBackup 控制台中上线。

问题原因

Docker 宿主机在启动 AnyBackup 客户端容器时,容器内的 root 用户只是外部的一个普通用户权限,不具备真正的 root 权限。

解决方案

为了解决该问题,需要在开启客户端容器时,授予 root 用户真正的 root 权限,具体步骤如下:

1.​以 root 用户使用 SSH 工具连接 Dokcer 宿主机。

2.​查询需要备份的 MySQL 数据库容器在 Docker 宿主机中的数据库数据文件存放路径,使用命令 docker insepct <container_name> 查询,如下:

根据查看 Mounts 信息中的 Source 路径,确认 MySQL 数据文件在宿主机中存放的路径。

3.查询 AnyBackup 客户端容器的 IMAGE ID,使用命令 docker images 查询,如下:

4.根据步骤2、3中查到的信息,在 Docker 宿主机启动客户端容器,并添加 --privileged=true 参数使启动容器内的 root 用户拥有真正的 root 权限 ,执行命令如下:

docker run -d -v <Source 路径>:/var/lib/mysql --name=<container_name> --hostname=<客户端容器主机名> --privileged=true <IMAGE ID> /usr/sbin/init

选项:

--container_name :可任意填写, 但不可与宿主机中现有容器名称重复。

--客户端容器主机名:可任意填写。​

示例:​

5.​进入 AnyBackup 客户端容器,重新执行客户端安装。

更多信息

更多关于 docker -run 参数,可执行 docker run --help 进行了解。​