我是码头工人的新手。我只是试着在我的本地机器(Ubuntu 16.04)上使用docker和Jenkins。

我用下面的管道脚本配置了一个新作业。

node {
    stage('Build') {
      docker.image('maven:3.3.3').inside {
        sh 'mvn --version'
      }
    }
}

但是它失败了,错误如下:

在unix:///var/run/ Docker .sock试图连接到Docker守护进程套接字时被拒绝


当前回答

方法01:—更安全的方法

sudo usermod -aG docker ${USER}

若要应用新的组成员资格,请从服务器注销并返回,或键入以下内容:

su - ${USER}

系统将提示您输入用户密码继续。 确认您的用户现在已添加到docker组,输入以下命令:

id -nG

方法02:-不建议用于公共部署(不安全)

chmod 777 /var/run/docker.sock

或使用

sudo chown root:docker /var/run/docker.sock

其他回答

通常需要重新启动才能对新的用户组和用户生效。

我的成功

sudo usermod -a -G docker $USER
reboot

使用下面的dockerfile

FROM jenkins/jenkins

USER root

# Install Docker
RUN apt-get update && \
    apt-get -y install apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common && \
    curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
    add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
    $(lsb_release -cs) \
    stable" && \
    apt-get update && \
    apt-get -y install docker-ce


# Compose
RUN curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose



RUN usermod -aG docker jenkins
RUN usermod -aG root jenkins

USER jenkins

我将jenkins用户添加到根组,并重新启动jenkins,它开始工作。

sudo usermod -a -G root jenkins
sudo service jenkins restart

这在Ubuntu 20.04中适用

sudo chmod 666 /var/run/docker.sock

不知道它到底能做什么,但能解决问题。