Jenkins中執行docker命令報錯

Federico發表於2017-12-28

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

相關文章