1. IntelliJ IDEA: 2018.2.4 (Ultimate Edition)

  2. JDK:1.8.0_181

  3. Maven:3.5.0

  4. Docker服务所在环境:CentOS Linux release 7.6.1810

  5. 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插件

  1. 在IDEA的开始页面,点击右下角的”Configure”菜单,再点击下图红框中的”Plugins”按钮,进入插件管理页面:

  1. 点击下图红框中的Browse repositories按钮:

  1. 如下图,红框1位置输入”Docker”之后就会搜到红框2中的Docker插件,再点击红框3中的”Install”按钮开始安装插件:

  1. 安装完成后,原先的”Install”按钮的文案变成了重启,点击该按钮重启IDEA,至此Docker插件安装完成;

[](()连接远程Docker服务

  1. 在IDEA的开始页面,点击右下角的”Configure”菜单,再点击下图红框中的”Settings”按钮,进入设置页面:

  1. 在设置页面,按照下图的数字顺序创建一个Docker server并进行设置,其中”192.168.121.131″是Docker服务所在机器的IP地址,如果连接成功页面上会立即提示”Connection successful”:

至此,Docker插件准备完毕,远程连接也已经OK,可以尝试使用该插件了。

[](()创建一个springboot应用

为了验证Docker插件的功能,先开发一个简单的sringboot应用:

  1. 在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

  1. 应用启动类同时作为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上运行

  1. 在工程dockerplugindemo的pom.xml文件所在目录下,创建名为Dockerfile的文件,内容如下:

Docker image for springboot application

VERSION 0.0.1

Author: bolingcavalry

基础镜像,使用alpine操作系统,openjkd使用8u201

FROM openjdk:8u201-jdk-alpine3.9