前言
期初有這個需求感覺就跟套娃一樣,你在docker 中調用docker,笑哭……這個也太逗了。
不過的確遇到了,因為jenkins 容器中沒有docker ,所以在編譯 docker build 的時候 會出現 docker command 不存在。
好吧,解決他!
解決
其實也很簡單,把宿主機的 docker.socket 和 docker 掛在到容器內部,就可以使用了
docker-compose
version: "3"
services:jenkinsServer:image: jenkins/jenkins:latestvolumes:- /data/mnt/jenkins/:/var/jenkins_home- /etc/localtime:/etc/localtime:ro- /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/dockerports:- 9101:8080- 9102:50000deploy:replicas: 1restart_policy:condition: on-failureplacement:constraints: [node.role == manager]networks:- defaultnetworks:default:external:name: unreal-network
- ?
以上就可以使用docker在容器內build了。
無權限的問題
docker 默認是使用 root 用戶才能使用和訪問的。如何解決呢?
sudo chmod a+rw /var/run/docker.sock
- 1
一句話解決