在做jenkins 和docker 集成的时候,尤其是用docker 和dockerfile 构建新镜像的时候

会遇到jenkins 不能执行docker命令的问题

报错信息:

+ docker build -t appserver .Cannot connect to the Docker daemon. Is the docker daemon running on this host?Build step 'Execute shell' marked build as failureFinished: FAILURE

两个原因:

1,docker-daemon 是真的没有起来,重启下就好了

2,就是jenkins 没有权限执行docker 命令

解决办法就是,把jenkins 加入到docker 组,如果还不行就加入root组

gpasswd -a jenkins root

gpasswd -a jenkins dockerroot

简单,粗暴,有效

jenkins 构建镜像版本并推送到私有仓库里的脚本

echo "FROM harbor.studeylinux.com/alpine-tomcat-java/alpine_jdk7_tomcat7:v1ADD test.txt /home/apache-tomcat7/webapps " > Dockerfileimagesid=`docker images|grep -i superjia/test|awk '{print $3}'`if ! -n "$imagesid";then   echo $imagesid "is null"else    docker rmi $imagesid -ffidocker build -t harbor.studeylinux.com/superjia/test:v${BUILD_NUMBER}  .docker login harbor.studeylinux.com -u dev -p passworddocker push harbor.studeylinux.com/superjia/test:v${BUILD_NUMBER}if docker ps -a|grep -i superjia/test;then   docker rm -f dockerfi