乐趣区

关于java:再见命令行一键部署应用到远程服务器IDEA官方Docker插件真香

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…

退出移动版