授予jenkins访问unix:///var/run/docker.sock的权限

时间:2020-07-26 03:54:37

标签: docker ubuntu jenkins

我已将docker插件安装到jenkins中,并且正在尝试配置docker cloud。

我的jenkins安装程序正在docker容器中运行,并且已经绑定到主机上的docker套接字,如下所示:

version: '3.3'
services:
    jenkins:
        container_name: jenkins
        ports:
            - '7345:8080'
            - '50000:50000'
        volumes:
            - /docker/jenkins/data/jenkins_home:/var/jenkins_home
            - /var/run/docker.sock:/var/run/docker.sock
        image: 'jenkins/jenkins:lts'

使用docker-ce-cli可以很好地使用此方法。如果我安装cli并绑定到主机的套接字,那么它将起作用。

但是设置詹金斯我遇到了一个错误:

enter image description here

在jenkins容器中,所有内容都在UID为1000的用户“ jenkins”下运行。在我的主机上,UID 1000是一个名为“ ubuntu”的用户。

我已将此用户添加到docker组

usermod -aG docker ubuntu

并检查套接字权限:

# ls -lisa /var/run/docker.sock
833 0 srw-rw---- 1 root docker 0 Jul 22 22:02 /var/run/docker.sock

但是詹金斯仍然抱怨它没有权限。

授予jenkins访问此套接字权限的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

另一个线程中的任何自定义项均无效,但我对其进行了一些调整,使其与以下文件一起工作:

FROM jenkins/jenkins 

USER 0

ARG DOCKERGID=998

# Docker
RUN apt-get update \
    && apt-get install software-properties-common apt-transport-https ca-certificates gnupg-agent dialog apt-utils -y \ 
    && curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \
    && add-apt-repository \
        "deb [arch=amd64] https://download.docker.com/linux/debian \
        $(lsb_release -cs) \
        stable" \
    && apt-get update \
    && apt-get install docker-ce-cli -y

# Setup users and groups
RUN addgroup --gid ${DOCKERGID} docker
RUN usermod -aG docker jenkins

USER 1000

答案 1 :(得分:-1)

要能够从jenkins使用docker,只需将jenkins用户添加到docker组,而不是ubuntu一个。

usermod -aG docker jenkins