Make Jenkins run docker without sudo

后端 未结 4 854
小鲜肉
小鲜肉 2020-12-11 03:34

I would like to run Docker shell commands on Jenkins like:

docker ps

Is it possible to do it with out using any plugi

相关标签:
4条回答
  • 2020-12-11 04:15

    Following approach worked for me to run docker commands without any plugins

    Rather than adding jenkins user to docker group, allowed jenkins user to run sudo commands with out prompting for password and then created an alias to avoid sudo in Dockerfile for jenkins slave. I had to install docker client in the container which connects to daemon running in the host machine.

    
     ## allowing jenkins user to run sudo commands
    RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
     ## avoid typing sudo in command line
    RUN echo "alias docker='sudo docker '" >> /home/jenkins/.bashrc
    

    0 讨论(0)
  • 2020-12-11 04:20

    (Taken from this answer: https://askubuntu.com/a/477554)

    If you run on Ubuntu and Jenkins runs directly on the host machine (i.e. not inside a Docker container):

    Add the docker group if it doesn't already exist:

    sudo groupadd docker
    

    Add the user "jenkins" to the docker group:

    sudo gpasswd -a jenkins docker
    

    Restart the Docker daemon:

    sudo service docker restart
    

    Either do a newgrp docker or log out/in to activate the changes to groups.

    0 讨论(0)
  • 2020-12-11 04:21

    First execute

    sudo groupadd docker
    

    Then execute

    sudo usermod -aG docker $USER
    

    Then logout its important to logout because your group membership is re-evaluated

    Login and try again

    docker ps
    

    It works!

    0 讨论(0)
  • 2020-12-11 04:25

    I had the issue when I was running from jenkins pipeline. I added jenkins user to docker group, restarted the docker engine and rebooted the machine as well. However I still get the same error dial unix /var/run/docker.sock: connect: permission denied.

    Finally I added jenkins to root group and it resolved my issue (ubuntu 18.04) (VM on Azure)

    sudo gpasswd -a jenkins root
    sudo service docker restart
    
    0 讨论(0)
提交回复
热议问题