在上述 docker run
命令中,添加 -v /var/run/docker.sock:/var/run/docker.sock
参数与不添加的区别主要体现在容器内部 Jenkins 的功能上:
- 未添加
-v /var/run/docker.sock:/var/run/docker.sock
:
- 在没有将宿主机的
/var/run/docker.sock
挂载到 Jenkins 容器内时,Jenkins 无法直接访问宿主机上的 Docker 守护进程。这意味着 Jenkins 将不能通过其插件(如 Docker Pipeline 或者其他基于 Docker 的构建步骤)直接控制宿主机上的 Docker。
- 添加
-v /var/run/docker.sock:/var/run/docker.sock
:
- 当您使用
-v /var/run/docker.sock:/var/run/docker.sock
这个卷挂载参数时,实际上是将宿主机的 Docker 守护进程监听的 Unix 套接字文件共享到了 Jenkins 容器内部。 - 这样做允许 Jenkins 容器内的进程能够和宿主机上的 Docker 守护进程通信,进而能够执行诸如启动、停止、构建和管理 Docker 容器等操作,这对于自动化持续集成/持续部署(CI/CD)流程非常有用,比如在 Jenkins 中创建 Docker 镜像、运行 Docker 容器测试或者部署应用到 Docker 容器中。
总之,添加该卷挂载意味着 Jenkins 可以实现更高级别的容器化构建和部署自动化,而不添加则意味着 Jenkins 在容器内部无法直接操作宿主机的 Docker 环境。