IntelliJ IDEA: 2018.2.4 (Ultimate Edition)
JDK:1.8.0_181
Maven:3.5.0
Docker服务所在环境:CentOS Linux release 7.6.1810
Docker:1.13.1, build b2f74b2/1.13.1
[](()免费使用正版IntelliJ IDEA
IntelliJ IDEA (Ultimate Edition)是商业版本,目前其License费用为499美金一年,对于学习和非商业用途开发者来说,其实是有机会免费获取此License的,申请和使用的详情可参考[《免费申请和使用IntelliJ IDEA商业版License指南》](();
[](()开启Docker的远程连接
本次实战中,IDEA作为开发电脑,要远程连接到另一台Linux电脑上部署的Docker服务,这就要求Docker服务开启了远程连接,开启方式请参考:[《Docker远程连接设置》](()
准备工作完成了,开始实战吧。
[](()安装Docker插件
- 在IDEA的开始页面,点击右下角的”Configure”菜单,再点击下图红框中的”Plugins”按钮,进入插件管理页面:
- 点击下图红框中的Browse repositories按钮:
- 如下图,红框1位置输入”Docker”之后就会搜到红框2中的Docker插件,再点击红框3中的”Install”按钮开始安装插件:
- 安装完成后,原先的”Install”按钮的文案变成了重启,点击该按钮重启IDEA,至此Docker插件安装完成;
[](()连接远程Docker服务
- 在IDEA的开始页面,点击右下角的”Configure”菜单,再点击下图红框中的”Settings”按钮,进入设置页面:
- 在设置页面,按照下图的数字顺序创建一个Docker server并进行设置,其中”192.168.121.131″是Docker服务所在机器的IP地址,如果连接成功页面上会立即提示”Connection successful”:
至此,Docker插件准备完毕,远程连接也已经OK,可以尝试使用该插件了。
[](()创建一个springboot应用
为了验证Docker插件的功能,先开发一个简单的sringboot应用:
- 在IEDA上创建一个名为dockerplugindemo的springboot工程,其pom.xml是默认内容:
<project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd”>
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.7.RELEASE
com.bolingcavalry
dockerplugindemo
0.0.1-SNAPSHOT
dockerplugindemo
Demo project for Spring Boot
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
- 应用启动类同时作为Controller,增加一个web响应接口:
package com.bolingcavalry.dockerplugindemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.Date;
@SpringBootApplication
@RestController
public class DockerplugindemoApplication {
public static void main(String[] args) {
SpringApplication.run(DockerplugindemoApplication.class, args);
}
@RequestMappi 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 ng(“/test”)
public String test(){
return “1. Hello world ! ” + new SimpleDateFormat(” [yyyy-mm-dd HH:mm:ss]”).format(new Date());
}
}
可见这是个最普通的springboot应用,对外提供一个http接口,接下来用Docker插件将此应用构建成镜像并在远程Docker上运行;
[](()用Docker插件将应用构建成镜像并在远程Docker上运行
- 在工程dockerplugindemo的pom.xml文件所在目录下,创建名为Dockerfile的文件,内容如下:
Docker image for springboot application
VERSION 0.0.1
Author: bolingcavalry
基础镜像,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9