Cannot connect to the Docker daemon. Is the docker daemon running on this host?
在配置Jenkins从Gitlab自动构建Dockerfile上传至Harbor时遇到了上述问题,jenkins中执行docker命令会有上述报错,查阅相关资料后发现解决办法如下:
一、修改Docker服务配置
systemctl stop docker
sudo gpasswd -a jenkins docker
#将jenkins用户加入docker组
vim /usr/lib/systemd/system/docker.service
#ExecStart=/usr/bin/dockerd-current
# --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current
# --default-runtime=docker-runc
# --exec-opt native.cgroupdriver=systemd
# --userland-proxy-path=/usr/libexec/docker/docker-proxy-current
# $OPTIONS
# $DOCKER_STORAGE_OPTIONS
# $DOCKER_NETWORK_OPTIONS
# $ADD_REGISTRY
# $BLOCK_REGISTRY
# $INSECURE_REGISTRY
# $REGISTRIES
ExecStart=/usr/bin/docker daemon -H unix:// -H tcp://192.168.1.1:2375
#将以上注释的配置文件替换为下面新加的文件。
systemctl daemon-reload
systemctl restart docker
二、重启Jenkins服务,构建当前项目查看是否可以执行docker相关命令
systemctl restart jenkins
如果遇到过滤Jenkins进程显示当前服务已经关闭,但是Jenkins仍无法启动的问题可以执行java -jar jenkins.war
命令来看详细报错,比较奇葩的是我已经将jenkins进程关闭了,过滤服务以及端口都已经显示关闭了,但是启动jenkins服务时还是会报地址被占用的错误,此时再重新执行systemctl stop jenkins
命令,然后对jenkins服务进行启动,看看是否可以解决。