Docker CI: Jenkins 主從模式的權限問題

一、概述

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

架構圖如下:

在這裏插入圖片描述

二、Docker 平臺(Centos7):權限問題

  1. Jenkins 報錯
    在這裏插入圖片描述
  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
    問題解決!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章