服务Docker化的好处:

  • 服务部署在Docker容器内,屏蔽了环境的影响,大大提高了成功部署的可复制性。
  • 只要使用Docker指令就能部署,简单。
  • 镜像可以上传到Registry,只要有Docker而且可以上网就能部署。

Jenkins可以使用Maven构建Docker镜像,完成之后可以Post Steps中实现镜像的上传:

Jenkins上传Docker镜像到Docker Hub

一共两步,tag和push:

1)其中tag使用了Docker插件,需要在 系统管理->系统配置->Docker Builder中设置:

Jenkins上传Docker镜像到Docker Hub

对应的值可在Jenkins服务器中,通过docker-machine env和docker -v获取:

Jenkins上传Docker镜像到Docker Hub

2)push操作使用Windows的批处理命令(因为Jenkins安装在Windows系统上,如果安装在Linux, 可以使用shell)。

理论上也能通过Docker插件完成push,多次实验之后未能成功!

尝试本地部署一台Registry,由于Registry若要开放外部访问,必须使用TLS,安装相对复杂,放弃!

所以最终选择使用批处理进行上传,期间遇到了docker指令无法识别的问题,参考解决。

 

通过这两步可以成功将镜像上传到Docker Hub中,但还有不合适的地方,如:使用了我个人的Docker Hub账号,密码明文显示在配置中,镜像在公网Registry中存在一定风险等(最好能本地部署一台Registry)。

 

 

转载于:https://my.oschina.net/u/4042451/blog/3039326

相关文章: