Docker CI: Jenkins 主从模式的权限问题

Docker CI: Jenkins 主从模式的权限问题

    • 一、概述
      • 架构图如下:
    • 二、Docker 平台(Centos7):权限问题
    • 三、Docker 平台(Centos7):解决方法

一、概述

基于 Docker 集成 CI 环境。涉及技术:Linux(Ubuntu 14.04), Docker, Jenkins, Git/Gitlab, Web/Httpbin, Python/Pytest, UI/Selenium, Robotframework, Grid Server, Appium 等。

架构图如下:

Docker CI: Jenkins 主从模式的权限问题_第1张图片

二、Docker 平台(Centos7):权限问题

  1. Jenkins 报错
    Docker CI: Jenkins 主从模式的权限问题_第2张图片
  2. slave主机测试
$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/json: dial unix /var/run/docker.sock: connect: permission denied
[mahuaping@XINDONG-QA-test002 ro-server-s-sonar]$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

三、Docker 平台(Centos7):解决方法

  1. docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令。
sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
sudo systemctl restart docker #重启docker服务
docker ps    #测试docker命令是否可以正常使用
  1. 重新Jenkins
    问题解决!

你可能感兴趣的:(Linux,测试管理,docker,Jenkins,权限问题)