Docker 作为目前支流的容器技术,应用它部署利用是十分不便的!对于这款支流容器技术,IDEA 官网天然也是有所反对的。最近体验了一把 IDEA 官网提供的插件,的确十分好用,明天咱们以 SpringBoot 利用的打包部署为例,来聊聊 IDEA 官网 Docker 插件的应用!
SpringBoot 实战电商我的项目 mall(50k+star)地址:https://github.com/macrozheng/mall
插件启用
- 因为该插件为 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
- 而后关上 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/swa…
总结
明天体验了一把 IDEA 的官网 Docker 插件,不应用命令行就能够实现近程 Docker 镜像与容器的治理,还反对 Docker Compose 部署,性能的确很弱小!在平时开发过程中,应用这款插件来打包、部署、运行 SpringBoot 利用的确很不便,感兴趣的小伙伴能够尝试下它!
参考资料
官网文档:https://www.jetbrains.com/hel…
我的项目源码地址
https://github.com/macrozheng…