社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker + Intellij IDEA,提升10倍生产力!

数据结构与算法 • 3 年前 • 461 次点击  
👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇

IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

一、开发前准备

1.Docker安装

可以参考:

https://docs.docker.com/install/

2.配置docker远程连接端口

vi /usr/lib/systemd/system/docker.service  

找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下图所示

3.重启docker

systemctl daemon-reload  
systemctl start docker  

4.开放端口

firewall-cmd --zone=public --add-port=2375/tcp --permanent    

5.Idea安装插件,重启

6.连接远程docker

「1、编辑配置」

「2、填远程docker地址」

「3、连接成功,会列出远程docker容器和镜像」

二、新建项目

1.创建springboot项目

项目结构图

「1、配置pom文件」

"1.0" encoding="UTF-8"?>  
"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 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    4.0.0  
  
    docker-demo  
    com.demo  
    1.0-SNAPSHOT  
      
        org.springframework.boot  
        spring-boot-starter-parent  
        2.0.2.RELEASE  
          
    
  
  
      
         UTF-8  
         UTF-8  
         com.demo  
         1.8  
    
  
      
          
            
            org.springframework.boot  
            spring-boot-maven-plugin  
          
  
          
           com.spotify  
           docker-maven-plugin  
           1.0.0  
             
              src/main/docker  
                
                  
                    /  
                    ${project.build.directory}  
                    ${project.build.finalName}.jar  
                
  
              
  
           
  
        
  
          
            maven-antrun-plugin  
              
                   
                     package  
                      
                          
                            "src/main/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}">  
                        
  
                     
  
                      
                        run  
                    
  
                    
  
            
  
        
  
  
       
  
    
  
  
      
         org.springframework.boot  
        spring-boot-starter-web  
    
  
      
  org.springframework.boot  
        spring-boot-starter-test  
        test  
    
  
      
        log4j  
        log4j  
        1.2.17  
    
  
  
  

「2、在src/main目录下创建docker目录,并创建Dockerfile文件」

FROM openjdk:8-jdk-alpine  
ADD *.jar app.jar  
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]  

「3、在resource目录下创建application.properties文件」

logging.config=classpath:logback.xml  
logging.path=/home/developer/app/logs/  
server.port=8990

「4、创建DockerApplication文件」

@SpringBootApplication  
public class DockerApplication {  
    public static void main(String[] args) {  
        SpringApplication.run(DockerApplication.class, args);  
    }  
}  

「5、创建DockerController文件」

@RestController  
public class DockerController {  
    static Log log = LogFactory.getLog(DockerController.class);  
  
    @RequestMapping("/")  
    public String index() {  
        log.info("Hello Docker!");  
        return "Hello Docker!";  
    }  
}  

「6、增加配置」

「命令解释:」

  • Image tag : 指定镜像名称和tag,镜像名称为 docker-demo,tag为1.1
  • Bind ports : 绑定宿主机端口到容器内部端口。格式为[宿主机端口]:[容器内部端口]
  • Bind mounts : 将宿主机目录挂到到容器内部目录中。

格式为[宿主机目录]:[容器内部目录]。这个springboot项目会将日志打印在容器 /home/developer/app/logs/ 目录下,将宿主机目录挂载到容器内部目录后,那么日志就会持久化容器外部的宿主机目录中。

「7、Maven打包」

「8、运行」

先pull基础镜像,然后再打包镜像,并将镜像部署到远程docker运行

这里我们可以看到镜像名称为docker-demo:1.1,docker容器为docker-server

「9、运行成功」

「10、浏览器访问」

「11、日志查看」

自此,通过IDEA 部署springboot项目到docker成功!难以想象,部署一个Javaweb项目竟然如此简单方便!

来源:juejin.im/post/5d026212f265da1b8608828b

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

点击👆卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓↓

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127110
 
461 次点击