Jenkins打Docker镜像推送到私有仓库

LogicPulseMaster
• 阅读 2968

Jenkins打Docker镜像推送到私有仓库

因为我的Jenkins是安装在群晖NAS中的docker,所以我这边就以Docker安装Jenkins为例

Jenkins打Docker镜像推送到私有仓库

echo '================Docker开始=============='

echo '================登陆阿里云私有镜像仓库=============='
# 定义镜像名称
IMAGE_NAME="scm"
# 查看当前目录
pwd
# 进入web目录Dockerfil所在目录下,scm-web是我项目目录,Dockerfile文件在该目录下
cd scm-web
# 查看当前目录
pwd
echo "# 登陆阿里云docker私有仓库"
docker login --username=${username} --password=${password} registry.cn-hangzhou.aliyuncs.com
echo "# 打镜像tag"
docker -t registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER} $WORKSPACE/scm-web
echo "# 推送到仓库"
docker push registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}
echo "# 删除本地镜像"
docker rmi registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}
echo "# 退出私有仓库"
docker logout 

echo '================Docker结束=============='

echo "部署镜像 ===============>>>>>>>>>>>>>>>>>>>>>>> registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}"

如果上来就直接jenkins sh构建运行shell脚本会报: docker: command not found

如果普通docker,把宿主机的这两个文件挂载到jenkins容器中,就可以执行docker命令了。

/var/run/docker.sock
/bin/docker

这个是我在网上看到的教程,我还没试过。。。

有空会试试的,看看行不行。


可以是我群晖NAS的docker,我是先在NAS的shell命令下找到docker文件,之后将该文件复制到homes目录下。

# 群晖NAS的docker文件在/usr/local/bin/下
cp /usr/local/bin/docker /volume1/homes/admin/jenkins_docker/bin

之后就在群晖NAS的web页面去操作docker容器,挂载目录。

Jenkins打Docker镜像推送到私有仓库

再然后jenkins sh构建运行shell脚本会报:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

这个是因为docker找不到守护进程,那么我们开启宿主机的2375端口。通过这种方式:docker -H tcp://172.17.0.1:2375 version

参考文档:https://blog.csdn.net/liumiao...

然后我们在脚本中添加:

echo '================Docker开始=============='

echo '================登陆阿里云私有镜像仓库=============='
# 定义镜像名称
IMAGE_NAME="scm"
# 查看当前目录
pwd
# 进入web目录Dockerfil所在目录下,scm-web是我项目目录,Dockerfile文件在该目录下
cd scm-web
# 查看当前目录
pwd
echo "# 登陆阿里云docker私有仓库"
docker login --username=${username} --password=${password} registry.cn-hangzhou.aliyuncs.com
echo "# 打镜像tag"
docker -H tcp://172.17.0.1:2375 build -t registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER} $WORKSPACE/scm-web
echo "# 推送到仓库"
docker -H tcp://172.17.0.1:2375 push registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}
echo "# 删除本地镜像"
docker -H tcp://172.17.0.1:2375 rmi registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}
echo "# 退出私有仓库"
docker logout 

echo '================Docker结束=============='

echo "部署镜像 ===============>>>>>>>>>>>>>>>>>>>>>>> registry.cn-hangzhou.aliyuncs.com/hopefun/w2002:$IMAGE_NAME-${BUILD_NUMBER}"

至此就在Jenkins中应用保存。

接下来直接构建,查看控制台输出:

Jenkins打Docker镜像推送到私有仓库

我们在看下阿里云容器服务的镜像仓库有没有

Jenkins打Docker镜像推送到私有仓库

BingGo!!!

打完收工~~~
赵小胖个人博客:https://zc.happyloves.cn:4443/wordpress/

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Mac 环境docker 安装jenkins
网上很多的教程是讲的是Linux上的Docker安装Jenkins,但是我用的是Mac,所以参考之前的前辈写的文章,记录一下自己的安装过程。非常感谢参考文章的前辈写的文章。参考Docker安装Jenkins:https://blog.csdn.net/mmd0308/article/details/77206563?locationNum6&
Stella981 Stella981
3年前
Docker容器使用jenkins部署web项目
(1)需要安装Docker容器,在Docker容器内安装jenkins,gogs,tomcat。  新建maven项目,添加findbugsplugin。使用docker启动jenkins,gogs,Tomcat的命令gogs:dockerrunitdp10022:22p10080:3000restarta
Stella981 Stella981
3年前
Jenkins
实验架构:192.168.0.96gitlab192.168.0.97jenkins、tomcat192.168.0.98harbor、docker集群、git、jdk、maven1、先把单个jenkins做成可以部署到docker集群中。参照:https:
Stella981 Stella981
3年前
Docker + selenium + jenkins 并行跑自动化测试
背景目标:使用docker做UI自动化测试并在Jenkins运行调试环境:MocOS运行环境:Linuxubuntudocker涉及工具:docker,selenium,unittest,jenkins基本思路找一个适合做自动化的docker镜像,使用seleniumgrid远程执行selenium。镜像
Stella981 Stella981
3年前
Jenkins打Docker镜像推送到私有仓库
Jenkins打Docker镜像推送到私有仓库因为我的Jenkins是安装在群晖NAS中的docker,所以我这边就以Docker安装Jenkins为例!(https://oscimg.oschina.net/oscnet/up32dceca60af852573f508da551328bc92
Stella981 Stella981
3年前
Jenkins使用docker构建
Jenkins使用docker构建Jenkinsmaster要将构建任务分配给Docker,就必须在Jenkinsagent上安装Docker。建议给这些agent打上docker的标签。在Jenkinsagent上安装Docker注意要将Jenkinsagent的用户加入Docker的
Stella981 Stella981
3年前
DEVOPS技术实践_15:使用Docker作为Jenkins的slave
前面实验了使用docker搭建一个jenkins,下面实验使用docker作为jenkins的slave节点1\.环境准备一个运行Docker的主机或者群集Jenkins应该能访问互联网,方便安装插件。Jenkins服务器能够和GitHub通信。Jenkinss对Java所需要的Git,和Ma
Stella981 Stella981
3年前
Docker Hub 上的官方 Jenkins 镜像
目前,在DockerHub上有三个不同的仓库正(或曾经)被当作“官方”Jenkins镜像。本文是为了申明哪个是当前的官方镜像(截至2018年12月).官方的dockerpulljenkins/jenkinshttps://hub.docker.com/r/jenkins/jenkins/是正确的仓库
Stella981 Stella981
3年前
Jenkins+Gitlab+自动化测试配置持续集成
Jenkins安装在win7上GitLab安装在docker上需求:本地提交自动化测试代码在gitlab上后,jenkins自动构建,拉下新提交的自动化代码,并且运行参考的链接:https://vwin.github.io/2018/10/11/JenkinsHTML%E6%8A%A5%E5%91%8A%E6%A0%B7%E5%BC%8F
Stella981 Stella981
3年前
CentOS安装Jenkins
一、war包安装方式1、准备tomcat、jdk1.82、下载jenkins.war。下载地址:https://jenkins.io/zh/download/3、将jendins.war放到$TOMCAT\_HOME/webapps目录下,启动tomcat即可二、docker安装1、拉取镜像https://hub.docker.co
Stella981 Stella981
3年前
Docker搭建私有镜像仓库
docker仓库的工作原理和maven的类似,他们都提供了提供了一个中央仓库,允许用户科技直接从中央仓库下载,同时我们也可以搭建自己的本地私有仓库。docker本地私有镜像仓库的优点:1.从私有仓库中下载节省网络带宽;2.从私有仓库中下载速度快,一般都是局域网络内部署;3.托管不对外的内部镜像;下面我们将完整的说明使用docker