这篇博客的目的:
项目可以快速的生成镜像,并能快速发布到docker容器,可以将生成的镜像供其他人员pull.
写这篇博客的背景:
手上的项目的微服务的,测试环境部署用的也是docker,就寻思着有木有可以点点点就可以发布到测试服的工具,网上搜了下大多数是介绍docker-maven插件的,有两种
- docker-maven-plugin
- dockerfile-maven-plugin
前者太旧了,推荐dockerfile开头的插件,我的电脑又是windows,装有虚拟机VMware,里面有docker,并不想安装exe的docker,按照网上所谓的教程,搞了半天,一头雾水,目的也没有达到,就此作罢,也许这两个插件的确很棒,我不太会用,下面介绍的是我自己一步步探索出来的方式。
一、安装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
systemctl daemon-reload
systemctl start docker
二、IDEA中安装docker插件以及配置
提示:这里有个很大的坑,跟idea的版本有关,我的2018.2.x版本,报Required Email这个错,不得不更换IDEA的版本为2019.3.5
2.1、配置docker插件TCP
2.2、配置阿里云镜像仓库地址
dockerfile生成的镜像,需要push到远程仓库保存,由于dockerhub访问速度太慢,所以这里使用阿里云提供的镜像仓库.
2.2.1、新增命名空间和镜像仓库
地址:
https://cr.console.aliyun.com/cn-hangzhou/instances/namespaces ,按照提示创建完后,会有一个用户名和秘密,下文要用到。
添加一个命名空间为duchong
2.2.2、新增阿里云仓库镜像repo
由于是本地提交,选择仓库类型为本地仓库提交
列表中点击 管理 按钮 ,可以看到三个地址,格式为:域名+命名空间+仓库名,然后复制公网地址。
registry.cn-hangzhou.aliyuncs.com/duchong/demo-repo
2.2.3、docker 插件中配置阿里云镜像仓库地址
三、新建docker-demo 项目
3.1、项目结构
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 images
3.4、创建容器并启动
RUN后,生成容器,还可以看到启动日志
docker ps 查看
四、推送镜像到阿里云镜像仓库
五、从阿里云镜像仓库pull
删除本地的image,然后从远程仓库pull
pull 完成后,创建容器
Run后
六、浏览器访问
代码已上传:---》传送门