鍍金池/ 問答/Java  Linux  HTML/ docker 容器中運(yùn)行宿主機(jī)中的docker命令

docker 容器中運(yùn)行宿主機(jī)中的docker命令

  1. 最近在搞jenkins docker部署,遇到一個問題,在jenkins配置中執(zhí)行docker version,發(fā)現(xiàn)構(gòu)建失敗,控制臺報(bào)docker not found,jenkins是采用docker 鏡像的方式運(yùn)行的,想了想,應(yīng)該報(bào)這個錯,因?yàn)閐ocker中無法執(zhí)行docker命令,要想采用docker部署,應(yīng)該解決,在docker中能夠執(zhí)行docker相關(guān)的創(chuàng)建容器的命令,這樣的docker使用方法有背docker的初衷,我想應(yīng)該在容器通過API的方式調(diào)用宿主機(jī)的API,然后解決該問題,但不知道,該問題,有沒成熟的解決方案,不一定是我的思路,踩過這個坑的前輩,求分享
回答
編輯回答
安淺陌

剛踩過但我不是前輩,樓上那種單一掛載是不行的,需要在鏡像構(gòu)建時(shí)將jenkins用戶加入到docker組里

ARG dockerGid=999
RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group 

我弄了個可以用jenkins用戶運(yùn)行docker的鏡像,
直接拉取就可以用:

docker pull tomsun28/jenkins:1.1

運(yùn)行:

docker run -d -p 8080:8080 -p 50000:50000 --name jenkins --restart=always \
-v /opt/dockerWorkspace/jenkins_home:/var/jenkins_home \
-v $(which docker):/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock  tomsun28/jenkins:1.1

具體流程和構(gòu)建的Dockerfile看這里哦 tomsun28
github

2017年1月31日 17:02
編輯回答
近義詞

把這兩個文件掛載到j(luò)enkins容器中,就可以執(zhí)行docker命令了。

/var/run/docker.sock
/bin/docker
2018年6月4日 14:14