先看下问题,

进入Jenkins容器,执行Docker命令,无法执行,如下报错

Jenkins容器无法执行docker命令_Docker

 

背景

最近想用Gitlab+Jenkins实现持续部署:通过hook触发Jerkins执行Job:构建打包、部署,但是运行过程出现报错(如下图)

于是乎在容器里面尝试执行docker命令,出现了如标题问题。

Jenkins容器无法执行docker命令_Docker_02

 

如何解决

网上“jenkins容器无法执行docker命令”的解决方法

创建容器的时候指定挂载目录:

volumes:
- "/home/jenkins_home:/var/jenkins_home"
- "/var/run/docker.sock:/var/run/docker.sock"
- "/usr/bin/docker:/usr/bin/docker"
后面2个目录是为了:能让容器内的 jenkins 调用并操作容器外的 docker。


另一种解决思路:启动容器时宿主机的挂载目录,在宿主机的挂载目录下存放Docker命令脚本,通过执行挂载目录的脚本,来达到脱离容器~在宿主机执行docker命令的目的。

(以上是一种思路,毕竟解决根本问题才是重点,推荐大家可以试一下~~)