目录

  • 本文首发于我的个人博客,Windows Docker 部署 Spring Boot 项目 ,欢迎访问!

    使用 Docker 部署一个简单的 Spring Boot 数据库项目。

    最近容器化技术 hin 流行啊,所以开始折腾一下呗。试用了下,有的时候的确比虚拟机要方便。其实起初是要用 Redis,但是 Windows 安装不方便,于是就看了下 Docker,基本开箱即用,Docker Hub 上 pull 一个 Redis 官方镜像就可以了。刚好最近在学 Spring Cloud 微服务,也就尝试下 Docker 部署 Spring Boot 项目。

    内容上,本文主要是对 Spring Boot 官方文档的一个补充,英语不错的可以直接浏览参考文献 6-7。

    Docker 的基本概念和用法,这里就详细展开了,可以看参考文献 1-3。

    Docker Configuration

    Docker 一般是安装在 Linux 系统中的,但是目前 Windows 也能使用,下载安装后开箱即用。额外需要配置的是:

    1.暴露 TCP 端口,可以在 IDEA 的 Docker 插件中连接使用。

    2.替换官方的 Docker 仓库,使用阿里云镜像加速。在 Daemon 中可进行配置。

    Config IDEA Plugin

    Docker 本身是没有 GUI 界面的,所以所有的维护管理都必须使用命令行,比较麻烦,而 IDEA 给我们提供了一个简单的 Docker 插件,用于管理 Image 和 Container。

    在设置中直接搜索 docker,添加一个 Docker Engine,配置 URL,稍等下面提示连接成功后,就可以了。如果连接失败了,可以检查下 TCP 的 2375 端口是否暴露了。

    然后在底部,就能看到 Docker 的 tab了。里面的信息和命令行中看到的一致。基本的创建、删除、端口映射等操作都能在上面进行。

    那么 Docker 相关的配置就完成了。

    Create Spring Boot Project

    这里用来演示的是一个 Spring Boot 的数据库项目。跟之前一样,配置一些基本内容就可以了。

    <!--pom.xml--> <groupId>com.example</groupId> <artifactId>spring-docker</artifactId> <version>1.0.0</version> <name>spring-docker</name>  <properties>   <java.version>1.8</java.version>   <skipTests>true</skipTests>          <druid-spring-boot-starter.version>1.1.10</druid-spring-boot-starter.version>   <dockerfile-maven-plugin.version>1.4.10</dockerfile-maven-plugin.version>   <docker.image.prefix>springboot</docker.image.prefix> </properties>  <dependencies>   <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-web</artifactId>   </dependency>    <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-test</artifactId>     <scope>test</scope>   </dependency>   <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-data-jpa</artifactId>   </dependency>   <dependency>     <groupId>com.alibaba</groupId>     <artifactId>druid-spring-boot-starter</artifactId>     <version>${druid-spring-boot-starter.version}</version>   </dependency>   <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <scope>runtime</scope>   </dependency> </dependencies>