Linux下docker制作springboot应用镜像
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux下docker制作springboot应用镜像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2535字,纯文字阅读大概需要4分钟。
内容图文
![Linux下docker制作springboot应用镜像](/upload/InfoBanner/zyjiaocheng/924/206ef46862bb4d53929acdbd148fafc9.jpg)
之前的一篇文章《springboot研究五:springboot整合rabbitmq》有讲解,下面我分3步来讲解
1.打包工程
工程目录结构如下:web模块是集成模块。
在web目录下,执行打包命令打出jar包
mvn clean -Dmaven.test.skip=true install
因为依赖其他3个模块,所以需要分别在commons 、repository、service下面执行上面的打包命令。
注:mvn命令中package只打包不发布私服,install发布到本地私服,deploy同时发布到本地和远程私服。
2.打出web.jar包后,上传到Linux服务器,编写Dockerfile文件,内容如下:
FROM ascdc/jdk8 VOLUME /tmp ADD web-1.0-SNAPSHOT.jar springboot-rabbitmq.jar ENTRYPOINT ["java","-jar","springboot-rabbitmq.jar"]
上面代码中,第一行指定依赖的jdk镜像,docker打包的时候会自动拉取jdk镜像。第二行会在/var/lib/docker创建一个临时目录tmp,这个目录是springboot为Tomcat指定的运行目录。第三行为打出的jar包指定别名。第四行指定执行命令。
编写好Dockerfile文件后,Dockerfile文件和web.jar包放在同一个目录下,在这个目录下执行如下命令:注意,最后有个点
docker build -t jinjunzhu/rabbitmq:1.0 .
等待一段时间后,打包镜像成功,如下图:
执行docker images | grep jinjunzhu
可以看到打好的镜像了,但是镜像文件太大了,原因是jdk的镜像太大。我们换jdk镜像,修改Dockerfile文件第一行,如下所示
#FROM ascdc/jdk8 from openjdk:8-jdk-alpine VOLUME /tmp ADD web-1.0-SNAPSHOT.jar springboot-rabbitmq.jar ENTRYPOINT ["java","-jar","springboot-rabbitmq.jar"]
再次执行 docker build -t jinjunzhu/rabbitmq:1.0 .命令。如下图:这一次的镜像小了很多
启动刚刚创建的镜像:
docker run -itd --name springboot-rabbitmq -p 8082:8082 d170dea75f29
可以看到输出:b8a65d2eb6c8ff78c49b4aefb9cd453e03d0df80570d3534f275816f84706220
查看启动日志:
docker logs b8a65d2eb6c8ff78c49b4aefb9cd453e03d0df80570d3534f275816f84706220
在浏览器输入:http://192.168.59.131:8082/actuator/health,返回helloworld,可以启动成功。
浏览器输入http://192.168.59.131:8082/mq/direct返回500错误,这个url请求是向rabbitmq发送一条消息,docker logs查询日志:
可见,新构建的容器不能访问宿主机的rabbitmq服务。 进入容器内部:
docker exec -it springboot-rabbitmq /bin/bash
telnet rabbitmq地址:telnet 192.168.59.131 5672,不通。网上找到了答案,应用对docker开启了防火墙,执行如下命令,对docker0开放5672端口,再次telnet就可以通了
firewall-cmd --permanent --zone=trusted --change-interface=docker0 firewall-cmd --reload
3.上传镜像到dockerhub
登录docker
docker login
依次输入用户名密码,然后执行如下命等待上传完成。zjj2006forever是dockerhub用户名,spingboot-rabbitmq:1.0是镜像名称,这个名称跟之前的名称不一样,是我新打了一次镜像,名称在下面。
docker push zjj2006forever/spingboot-rabbitmq:1.0 docker build -t zjj2006forever/spingboot-rabbitmq:1.0 .
欢迎关注个人公众号,一起学习进步
内容总结
以上是互联网集市为您收集整理的Linux下docker制作springboot应用镜像全部内容,希望文章能够帮你解决Linux下docker制作springboot应用镜像所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。