一键部署项目!IDEA官方Docker插件真香!
mall学习教程官网:macrozheng.com
Docker作为目前主流的容器技术,使用它部署应用是非常方便的!对于这款主流容器技术,IDEA官方自然也是有所支持的。最近体验了一把官方IDEA插件,确实非常好用,今天我们以SpringBoot应用的打包部署为例,来聊聊IDEA官方Docker插件的使用!
插件启用
- 由于该插件为IDEA内置插件,直接在插件设置中启用就好了;
- 由于我们的Docker环境部署在远程服务器上,我们还需要配置下Docker的连接信息,在Docker设置里配置即可,看到
连接成功
提示后就表示配置正确了;
- 接下来打开IDEA底部的
Services
面板,双击Docker图标进行连接,连接成功后就可以对远程服务器上的Docker容器和镜像进行管理了。
镜像管理
- 点击
Images
按钮,输入需要下载的镜像名称和版本号就可以下载镜像了,这里IDEA还支持自动提示,实在太贴心了!
- 右键指定镜像打开菜单,我们还可以对其进行创建容器、查看、删除等常规操作;
- 当然我们还可以使用Dockerfile来构建自己的镜像,这里以我的mall-tiny 脚手架项目为例,首先准备好Dockerfile脚本;
# 该镜像需要依赖的基础镜像
FROM java:8
# 将当前目录下的jar包复制到docker容器的/目录下
ADD ./mall-tiny-1.0.0-SNAPSHOT.jar /mall-tiny-1.0.0-SNAPSHOT.jar
# 声明服务运行在8080端口
EXPOSE 8080
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/mall-tiny-1.0.0-SNAPSHOT.jar"]
# 指定维护者的名字
MAINTAINER macrozheng
这或许是一个对你有用的开源项目,mall项目是一套基于 SpringBoot + Vue + uni-app 实现的电商系统(Github标星60K),采用Docker容器化部署,后端支持多模块和微服务架构。包括前台商城项目和后台管理系统,能支持完整的订单流程!涵盖商品、订单、购物车、权限、优惠券、会员、支付等功能!
- Boot项目:https://github.com/macrozheng/mall
- Cloud项目:https://github.com/macrozheng/mall-swarm
- 视频教程:https://www.macrozheng.com/video/
项目演示:
- 然后打开Dockfile文件,点击左侧按钮选择创建新的运行配置;
- 接下来选择我们配置好的远程Docker服务,配置好应用打包目录及镜像名称;
- 然后选择打包镜像,控制台将输出如下日志,jar包会直接上传到远程服务器并打包成镜像。
容器管理
- 右键镜像打开菜单,还可以直接创建容器;
- 由于mall-tiny项目需要用到mysql和redis服务,我们可以先启动它们;
- 然后修改创建容器的配置,主要就是一些之前使用
docker run
命令的指定的一些配置;
- 大家直接对照下之前使用的
docker run
命令,大概就能知道这些配置的作用了;
docker run -p 8080:8080 --name mall-tiny \
--link mysql:db \
--link redis:redis \
-e 'spring.profiles.active'=prod \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-tiny/logs:/var/logs \
-d mall-tiny/mall-tiny:1.0.0-SNAPSHOT
- 运行过程中可以直接在
Log
标签中查看容器的运行日志,这确实很方便!
与容器交互
- 通过容器面板我们可以查看到很多容器内部信息,比如查看环境变量;
- 还可以查看容器的端口映射配置;
- 还可以查看之前通过
docker inspect
命令获取的信息,比如查看容器运行的IP地址;
- 还可以直接进入容器内部去执行命令,还记得之前使用的
docker exec -it
命令么。
Docker Compose 支持
- 使用该插件也可以通过Docker Compose来部署应用,首先创建
docker-compose.yml
文件,由于mysql容器没有使用Docker Compose来创建,这里改用IP来访问;
version: '3'
services:
redis:
image: redis:5
container_name: redis-tiny
command: redis-server --appendonly yes
volumes:
- /mydata/redis-tiny/data:/data #数据文件挂载
ports:
- 6379:6379
mall-tiny:
image: mall-tiny/mall-tiny:1.0.0-SNAPSHOT
container_name: mall-tiny
links:
- redis:redis
depends_on:
- redis
ports:
- 8080:8080
environment:
- 'spring.profiles.active=prod'
- 'spring.datasource.url=jdbc:mysql://192.168.3.105:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false'
- 'spring.redis.host=redis'
volumes:
- /etc/localtime:/etc/localtime
- /mydata/app/mall-tiny/logs:/var/logs
- 然后直接点击
docker-compose.yml
文件箭头即可将应用部署到远程服务器,确实很方便!
- 部署完成后即可访问项目的Swagger页面,访问地址:http://192.168.3.105:8080/swagger-ui/
总结
今天体验了一把IDEA的官方Docker插件,不使用命令行就可以实现远程Docker镜像与容器的管理,还支持Docker Compose部署,功能确实很强大!在平时开发过程中,使用这款插件来打包、部署、运行SpringBoot应用确实很方便,感兴趣的小伙伴可以尝试下它!
参考资料
官方文档:https://www.jetbrains.com/help/idea/docker.html
项目源码地址
https://github.com/macrozheng/mall-tiny
Github上
标星60K
的电商实战项目mall,全套 视频教程(2023最新版) 已更新完毕!全套教程约40小时,共113期
,通过这套教程你可以拥有一个涵盖主流Java技术栈的完整项目经验
,同时提高自己独立开发一个项目的能力
,下面是项目的整体架构图,感兴趣的小伙伴可以点击链接 mall视频教程 加入学习。整套 视频教程 的内容还是非常完善的,涵盖了mall项目最佳学习路线、整体框架搭建、业务与技术实现全方位解析、线上Docker环境部署、微服务项目学习等内容,具体大纲可以参考下图,你也可以点击链接 mall视频教程 了解更多内容。
推荐阅读
- 69K Star!这是我见过最强的开源电商系统 !!
- Github标星60K!一套完整的项目实战教程来了,主流Java技术一网打尽!
- 看了我项目中购物车、订单、支付一整套设计,同事也开始悄悄模仿了...
- 订单系统就该这么设计,稳的一批!
- 支付系统就该这么设计,稳的一批!
- 权限系统就该这么设计,稳的一批!