Idea是Java开发的利器,SpringBoot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们之间会产生怎样的化学反应呢?合并了吗?羊毛布?一、开发前准备1.Docker安装可参考https://docs.docker.com/install/2。配置docker远程连接端口vi/usr/lib/systemd/system/docker.service找到ExecStart,在最后添加-Htcp://0.0.0.0:2375,如下图:3.重启dockersystemctldaemon-reloadsystemctlstartdocker4。打开端口firewall-cmd--zone=public--add-port=2375/tcp--permanent5.Idea安装插件,重启6.连接远程docker(1)编辑配置(2)填写远程docker地址(3)如果连接成功,会列出远程docker容器和镜像2.新建项目1.新建springboot项目项目结构图:(1)配置pom文件4.0.0docker-democom.demo1.0-SNAPSHOTorg.springframework.bootspring-boot-starter-parent2.0.2.RELEASEUTF-8UTF-8com.demo1.8org.springframework.bootspring-boot-maven-plugincom.spotifydocker-maven-plugin1.0.0<配置>src/main/docker<targetPath>/<目录>${project.build.directory}${project.build.finalName}.jarmaven-antrun-plugin包运行org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-test测试log4jlog4j1.2.17(2)在src/main目录下创建docker目录,创建Dockerfile文件FROMopenjdk:8-jdk-alpineADD*.jarapp.jarENTRYPOINT["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"](3)在资源目录下创建application.properties文件logging.config=classpath:logback.xmllogging.path=/home/developer/app/logs/server.port=8990(4)创建DockerApplication文件@SpringBootApplicationpublicclassDockerApplication{publicstaticvoidmain(String[]args){SpringApplication.run(DockerApplication.class,args);}}(5)创建DockerController文件@RestControllerpublicclassDockerController{staticLoglog=LogFactory.getLog(DockerController.class);@RequestMapping("/")publicStringindex(){log.info("HelloDocker!");return"HelloDocker!";}}(6)添加配置命令说明Imagetag:指定镜像名称和tag,镜像名称为docker-demo,tag1.1Bindports:Bind将宿主机端口设置为容器内部端口的格式为[宿主机端口]:[容器内部端口]Bindmounts:将宿主机目录挂载到容器内部目录。格式为[宿主目录]:[容器内部目录]。这个springboot项目会在容器的/home/developer/app/logs/目录下打印日志,挂载宿主机目录到容器内部目录后,日志会持久化到容器外的宿主机目录。(7)Maven打包(8)运行先拉取基础镜像,然后打包镜像,将镜像部署到远程dockerrun这里我们可以看到镜像名称为docker-demo:1.1,docker容器为docker-server(9)运行成功(10)浏览器访问(11)查看日志至此,通过idea将springboot项目部署到docker上成功了!很难想象部署一个Javaweb项目是这么简单方便!