前言
期初有这个需求感觉就跟套娃一样,你在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
一句话解决