配置的目的是使得Jenkins容器可以直接使用宿主机的Docker,从而可以直接使用Docker命令进行本地打包操作,然后推送到Harbor镜像仓库。
如何在docker中执行宿主机的docker操作,我们管它叫docker in docker。
至于为什么要在docker中操作宿主机的docker,优点不言而喻,我们既可以将你的具体需求容器化部署,又不用直接在宿主机上安装(假设我们没有办法在docker中操作宿主机的docker,那么我们只能将这样的软件程序直接安装到宿主机上,这样显然是不利于管理和维护的)。
实现这种需求,其实非常简单,只需要将docker宿主机的docker文件和docker.sock文件挂载到容器中即可,具体为:
cd /usr/local/docker/jenkins_docker/
vi docker-compose.yml
数据卷追加以下配置:
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /etc/docker/daemon.json:/etc/docker/daemon.json
完整的配置如下:
version: "3.1"
services:
jenkins:
image: jenkins/jenkins:2.401.2-lts
container_name: jenkins
restart: always
ports:
- 8080:8080
- 50000:50000
#数据卷&#x