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服務進行啟動,看看是否可以解決。