这篇博客的目的:

项目可以快速的生成镜像,并能快速发布到docker容器,可以将生成的镜像供其他人员pull.

写这篇博客的背景:

手上的项目的微服务的,测试环境部署用的也是docker,就寻思着有木有可以点点点就可以发布到测试服的工具,网上搜了下大多数是介绍docker-maven插件的,有两种

  • docker-maven-plugin   
  • dockerfile-maven-plugin

前者太旧了,推荐dockerfile开头的插件,我的电脑又是windows,装有虚拟机VMware,里面有docker,并不想安装exe的docker,按照网上所谓的教程,搞了半天,一头雾水,目的也没有达到,就此作罢,也许这两个插件的确很棒,我不太会用,下面介绍的是我自己一步步探索出来的方式。

1.1、Centos7安装docker

https://www.cnblogs.com/geekdc/p/11173602.html

1.2、docker配置阿里云镜像加速

https://www.cnblogs.com/geekdc/p/11173671.html

1.3、docker开通2375端口

作用:对外暴漏docker api,使外部插件可以跟daemon交互,完成镜像的制作以及容器的运行等

vim /usr/lib/systemd/system/docker.service
#后面加上
-H tcp://0.0.0.0:2375 

使用docker插件部署应用,看完这一篇就够了

systemctl daemon-reload
systemctl start docker

使用docker插件部署应用,看完这一篇就够了

二、IDEA中安装docker插件以及配置

提示:这里有个很大的坑,跟idea的版本有关,我的2018.2.x版本,报Required Email这个错,不得不更换IDEA的版本为2019.3.5

使用docker插件部署应用,看完这一篇就够了

2.1、配置docker插件TCP

使用docker插件部署应用,看完这一篇就够了

2.2、配置阿里云镜像仓库地址

dockerfile生成的镜像,需要push到远程仓库保存,由于dockerhub访问速度太慢,所以这里使用阿里云提供的镜像仓库.

2.2.1、新增命名空间和镜像仓库

地址:

https://cr.console.aliyun.com/cn-hangzhou/instances/namespaces ,按照提示创建完后,会有一个用户名和秘密,下文要用到。

添加一个命名空间为duchong

使用docker插件部署应用,看完这一篇就够了

2.2.2、新增阿里云仓库镜像repo

由于是本地提交,选择仓库类型为本地仓库提交

使用docker插件部署应用,看完这一篇就够了使用docker插件部署应用,看完这一篇就够了

列表中点击 管理  按钮 ,可以看到三个地址,格式为:域名+命名空间+仓库名,然后复制公网地址。

registry.cn-hangzhou.aliyuncs.com/duchong/demo-repo   

使用docker插件部署应用,看完这一篇就够了

2.2.3、docker 插件中配置阿里云镜像仓库地址

使用docker插件部署应用,看完这一篇就够了

使用docker插件部署应用,看完这一篇就够了

三、新建docker-demo 项目

3.1、项目结构

使用docker插件部署应用,看完这一篇就够了

3.2、Dockerfile

#依赖jdk8
FROM java:8
#维护者信息
MAINTAINER duchong 1427222829@qq.com
#容器卷
VOLUME /tmp
#拷贝jar包
COPY target/docker-demo-0.0.1-SNAPSHOT.jar /docker-demo.jar
#暴漏端口
EXPOSE 8080
#容器启动时执行
ENTRYPOINT [ "java", "-jar", "/docker-demo.jar" ]

3.3、生成镜像

使用docker插件部署应用,看完这一篇就够了

使用docker插件部署应用,看完这一篇就够了

使用docker插件部署应用,看完这一篇就够了

使用docker插件部署应用,看完这一篇就够了

使用docker插件部署应用,看完这一篇就够了

docker images 

使用docker插件部署应用,看完这一篇就够了

3.4、创建容器并启动

使用docker插件部署应用,看完这一篇就够了

RUN后,生成容器,还可以看到启动日志

使用docker插件部署应用,看完这一篇就够了

docker ps  查看

使用docker插件部署应用,看完这一篇就够了

四、推送镜像到阿里云镜像仓库

使用docker插件部署应用,看完这一篇就够了

使用docker插件部署应用,看完这一篇就够了

 五、从阿里云镜像仓库pull

删除本地的image,然后从远程仓库pull

使用docker插件部署应用,看完这一篇就够了

使用docker插件部署应用,看完这一篇就够了

 pull 完成后,创建容器

使用docker插件部署应用,看完这一篇就够了

 Run后使用docker插件部署应用,看完这一篇就够了

 六、浏览器访问

使用docker插件部署应用,看完这一篇就够了

使用docker插件部署应用,看完这一篇就够了

代码已上传:---》传送门

 

相关文章: