Jenkins: Can't connect to Docker daemon

After the installation of Jenkins and Docker. Add jenkins user to dockergroup (like you did)

sudo gpasswd -a jenkins docker

Edit the following file

vi /usr/lib/systemd/system/docker.service

And edit this rule to expose the API :

ExecStart=/usr/bin/docker daemon -H unix:// -H tcp://localhost:2375

Do not create a new line with ExecStart, simply add the commands at the end of the existing line.

Now it's time to reload and restart your Docker daemon

systemctl daemon-reload
systemctl restart docker

Then restart jenkins, you should be able to perform docker commands as jenkins user in your jenkins jobs

sudo service jenkins restart

I had the same issue with Jenkins.

I did fix it by adding /var/run/docker.sock:/var/run/docker.sock on docker-compose.yml :

  jenkins:
  container_name: jenkins
  build: "jenkins/"
  ports:
    - "8080:8080"
  environment:
    - JAVA_OPTS:-Djava.awt.headless=true
  volumes:
    - /var/jenkins_home
    - /var/run/docker.sock:/var/run/docker.sock

Another option is to point your Jenkins docker host to 'unix:///var/run/docker.sock'

This is instead of running the actual docker host and opening it up.