通過docker啓動jenkins,又在jenkins中運行docker命令

通過docker啓動jenkins,又在jenkins中運行docker命令

不同技術棧構建流程都大同小異,詳見jenkins doc

通過jenkinsci/blueocean構建的流水線項目,默認會使用docker環境,在構建時會報如下錯誤

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

是因爲:docker客戶機安裝在jenkinsci/blueocean映像上,而不是守護進程上。Docker客戶機將使用守護進程(默認情況下通過套接字unix:///var/run/ Docker .sock)。Docker客戶端需要一個Docker守護進程才能工作

可以使用:使用docker-in-docker (DinD)映像解決

docker run --name docker-dind --privileged -d docker:stable-dind
docker run --name jenkins --link=docker-dind -d jenkinsci/blueocean
docker exec jenkins docker -H docker-dind images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

Docker守護進程在Docker -dind容器中運行,可以使用相同的主機名訪問它。您只需要爲docker客戶機提供守護進程主機。

還可以在啓動jenkins時通過使用DOCKER_HOST env變量解決:

docker run -p 8080:8080 --user root  -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章