docker高级篇:实战-自己开发的微服务怎么在docker上面
通过前面的一系列学习,我们已经知道怎么制作dockerfile了。那么,本篇文章,咱们就把自己写的spring boot的demo项目,部署在docker上面。
案例目标:
我们自己开发的微服务怎么在docker上面运行呢?
1:通过IDEA新建一个普通的微服务模块
2:通过dockerfile发布微服务部署到docker容器中
创建微服务项目
1:创建一个简单版的spring boot项目。浏览器可以访问。返回任意信息就可以
2:mvn package后将对应项目的jar上传到docker的宿主机中。比如凯哥上传到mydocker文件夹下。
d6fe07b5dabdbe8c99d187827150fed8.png通过dockerfile发布微服务到docker容器中
1:编写dockerfile文件
<pre class="brush:cpp;toolbar:false" style="margin: 0.5em 0px; padding: 0.4em 0.6em; border-radius: 8px; background: rgb(248, 248, 248);"># 基础镜像使用java
FROM java:8
作者
MAINTAINER kagejava
VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
将jar包添加到容器中并更名为kagejava_docker.jar
ADD docker-demo-0.0.1-SNAPSHOT.jar kagejava_docker.jar
运行jar包
RUN bash -c 'touch /kagejava_docker.jar'
ENTRYPOINT ["java","-jar","/kagejava_docker.jar"]
暴露6001端口作为微服务
EXPOSE 6001
</pre>
2:构建镜像
docker build -t kaigejava_docker:1.0.1 .
65534b70c4d44764d1bf8e3ac3aecc80.png3:运行容器
查看镜像是否成功:
4f5d8b89b4618618b7329768a0817f62.png运行容器:
docker run -d -p 6001:6001 416d15a4026c
2a620609d7cf517de58fb53bca0a9196.png如果防火墙导致启动失败。可以关闭防火墙,然后在重启docker后再执行命令。如下图:
291ea9e5cfa482e0dfcc2cb95db4ea78.png4:访问测试
运行成功后,通过浏览器访问。访问地址是:宿主机id:6001/order/index
9134e7c11659db96b22350ddb7628722.png可以看到运行成功。说明,微服务实战成功。
大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~
本系列教程直通车
直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:
【图文教程】Windows11下安装Docker Desktop
【填坑】在windows系统下安装Docker Desktop后迁移镜像位置
【Docker学习系列】Docker学习1-docker安装
【Docker学习系列】Docker学习2-docker设置镜像加速器
【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?
【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令
【Docker学习系列】Docker学习系列3:常用命令之容器命令
【Docker学习系列】Docker学习4-常用命令之重要的容器命令
【Docker教程系列】Docker学习5-Docker镜像理解
【Docker教程系列】Docker学习6-Docker镜像commit操作案例
【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云
【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?
「Docker学习系列教程」10-Docker容器数据卷案例
docker高级篇1-dockeran安装mysql主从复制
docker高级篇第二章-分布式存储之实战案例:3主3从redis集群扩容配置
docker高级篇第二章-分布式存储之实战案例:主从容错切换迁移案例
Docker高级:Redis集群实战!4主4从缩容到3主3从,怎么处理?