专栏首页JAVA葵花宝典基于win10+Docker+idea的SpringBoot项目容器化部署

基于win10+Docker+idea的SpringBoot项目容器化部署

以前发过一些docker相关的文章,也发过一些Springboot相关的文章,今天这篇文章是教大家如何在win10下面基于docker构建Springboot项目

工具 & 环境

  • maven
  • jdk
  • idea
  • docker
  • win10

win10上安装Docker

软件安装这个就不多说了,大家可以参考这个帖子 :链接如下:https://blog.csdn.net/hunan961/article/details/79484098 主要注意两点就行了: 1.允许版本:64位Windows 10 Pro,专业版、企业版和教育版 2.开启虚拟化。

安装完成后,看到一个驮着很多集装箱的鲸鱼没,盘它!错了 ,点击启动它。

docker 安装完默认的docker hub 网址是 hub.docker.com ,注册一下,后面用到,比如,博主注册的账户是492782442

创建一个Springboot项目并且整合docker

如图:使用idea的傻瓜式操作创建一个Springboot项目

项目创建好以后在pom里面加入 docker-maven-plugin

<properties>    <docker.image.prefix>492782442</docker.image.prefix></properties><plugin>    <groupId>com.spotify</groupId>    <artifactId>docker-maven-plugin</artifactId>    <version>1.0.0</version>    <configuration>        <imageName>${docker.image.prefix}/${project.artifactId}</imageName>        <dockerDirectory>src/main/docker</dockerDirectory>        <resources>            <resource>                <targetPath>/</targetPath>                <directory>${project.build.directory}</directory>                <include>${project.build.finalName}.jar</include>            </resource>        </resources>    </configuration></plugin>

这里面指定了镜像名称以及docker脚本的执行目录,创建docker目录并编写Dockerfile脚本

FROM cantara/alpine-openjdk-jdk8COPY spring-boot-docker.jar /spring-boot-docker.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/spring-boot-docker.jar"]

只有三行脚本代码,为防止看不懂贴一下Docker语法:

  • FROM 基础镜像base image
  • RUN 执行命令
  • ADD 添加文件
  • COPY 拷贝文件
  • CMD 执行命令
  • EXPOSE 执行命令
  • WORKDIR 指定路径
  • MAINTAINER 维护者
  • ENV 设定环境变量
  • USER 指定路径
  • VOLUME 逻辑卷挂载点mount point

并根据实际情况使用。 可以看到Dockerfile里面有跟jar包有关的,那么在执行Dockerfile之前,install一下项目,并且使用 finalName属性指定打jar包后的包名,

<build>         <finalName>spring-boot-docker</finalName>...

直接使用idea的maven插件即可,点击install,构建jar包

生成的jar包如图所示

构建docker镜像

学过maven语法和docker语法的都知道很多场景的命令方式,但是,有界面傻瓜操作不用不是傻吗,来,点开idea的右侧maven那一栏,Plugins下面有docker,展开点击第一个

构建日志如下:

[INFO]                                                                         [INFO] ------------------------------------------------------------------------[INFO] Building spring-boot-docker 0.0.1-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] [INFO] --- docker-maven-plugin:1.0.0:build (default-cli) @ spring-boot-docker ---[INFO] Using authentication suppliers: [ConfigFileRegistryAuthSupplier][INFO] Copying D:\博客\spring-boot-2.0-leaning\spring-boot-docker\target\spring-boot-docker.jar -> D:\博客\spring-boot-2.0-leaning\spring-boot-docker\target\docker\spring-boot-docker.jar[INFO] Copying src\main\docker\Dockerfile -> D:\博客\spring-boot-2.0-leaning\spring-boot-docker\target\docker\Dockerfile[INFO] Building image 492782442/spring-boot-dockerStep 1/3 : FROM cantara/alpine-openjdk-jdk8
 ---> b250403334b3Step 2/3 : COPY spring-boot-docker.jar /spring-boot-docker.jar
 ---> c6466f2eafe9Step 3/3 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/spring-boot-docker.jar"]
 ---> Running in 03f67a5ff7deRemoving intermediate container 03f67a5ff7de ---> c6aff6fdadd4ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}Successfully built c6aff6fdadd4Successfully tagged 492782442/spring-boot-docker:latest[INFO] Built 492782442/spring-boot-docker[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 5.356 s[INFO] Finished at: 2019-05-23T17:55:29+08:00[INFO] Final Memory: 32M/330M[INFO] ------------------------------------------------------------------------

构建好的镜像去哪看?docker本地仓库啊,这里再照顾对docker命令不熟悉的朋友,可以使用idea的界面去看 。先把界面调出来

在界面点开连接之后,其他的都是傻瓜式交互了

试试本地基于镜像创建容器。在镜像上点击Create container

填写好端口映射之后,点击Run 启动,然后在idea里面可以看到相关日志,启动成功,完美!

那么到这是不是就结束了呢?显然不是,咱们只是在本地玩玩,远程怎么玩呢? 当然得把镜像推到远程仓库啊! 回到我们之前说的 去hub.docker.com 注册好了以后,创建 Repository

怎么理解呢,就跟你推送新项目到github一样就行了。

选择公开的,私有的要钱创建不了! 这里我们假设你们还是docker零基础,使用idea的页面进行操作, 鼠标右键镜像后点击push image

太慢了不好看进度,不装逼,直接用命令行了!

果然命令行还是贼快

完成!现在就可以在远程机器上pull下来愉快的玩耍了!

推荐阅读

徒手撸一个 Spring Boot 中的 Starter ,解密自动化配置黑魔法!

惊了!7 行代码优雅地实现 Excel 文件导出功能?

技术经理:求求你,别再乱改数据库连接池的大小了!

19条效率至少提高3倍的MySQL技巧

一个历时五天的 Bug

JAVA葵花宝典的正确打开方式

关注一下,尽知JAVA事!

本文分享自微信公众号 - JAVA葵花宝典(Javakhbd),作者:码畜君

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目

      1.1 首先请确认你的电脑是windows10专业版或企业版,只有这只有这两个版本才带有hyper-v

    JAVA葵花宝典
  • 使用docker部署spring cloud项目详细步骤

    (1)到Oracle官网下载好 jdk-8u181-linux-x64.tar.gz 备用 (2)卸载系统自带的java

    JAVA葵花宝典
  • 微信支付之扫码、APP、小程序支付接入详解

    做电商平台的小伙伴都知道,支付服务是必不可少的一部分,今天我们开始就说说支付服务的接入及实现。目前在国内,几乎90%中小公司的支付系统都离不开微信支付和支付宝支...

    JAVA葵花宝典
  • Docker容器技术

    Docker介绍 什么是容器 Linux容器是与系统其他部分隔离开的一系列进程,从另一个系统镜像运行,并由该镜像提供支持进程所需的全部文件。 容器镜像包含了应用...

    863987322
  • Jenkins在shell脚本运行docker权限报错解决

    能够在shell中使用docker version打印版本号,但是无法执行docker,报错信息如下

    易墨
  • CentOS7 下安装docker

    ```yum remove docker \ docker-common \ docke...

    致码DevOps
  • 搭建自己的密码管理服务器 Bitwarden

    很多人对于把密码放在网上,比如 lastpass 虽然官方说是提供加密了,服务器上看不到用户密码,但是还是不太放心,那么就可以搭建开源的 Bitwarden 搭...

    huginn 中文网
  • 『中级篇』docker企业版本地安装之UCP(57)

    PS:详细不介绍,就是一个图形化的,没啥介绍的。下次在阿里平台是建立下用云端玩玩。

    IT故事会
  • 第七章 Docker三剑客

    DOCKER技术在推出后掀起了一阵容器化技术的热潮,容器化使得服务的部署变得极其简易,这为微服务和分布式计算提供了很大的便利。

    BH9AP_Librant
  • docker运行容器远程挂载卷

    用户1418372

扫码关注云+社区

领取腾讯云代金券