系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > server > anz > 详细页面

IDEA中进行Docker项目部署的实现步骤

时间:2019-12-11来源:系统城作者:电脑系统城

现在大部分项目已经开始部署在Docker上面了,可是部署环节还是有点麻烦,所以本文想讲解一下如何使用IDEA一键部署。

Docker配置

修改配置文件


 
  1. 打开Docker的配置文件:
  2. vim /usr/lib/systemd/system/docker.service
  3. 将下面这行注释掉:
  4. # ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
  5. 新写一行:
  6. ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
  7. 重新加载配置文件和启动:
  8. systemctl daemon-reload
  9. systemctl start docker

如下图所示:

IDEA配置Docker

安装Docker插件

配置Docker信息

在设置中进行Docker配置,需要配置API URL,下面出现Connection successful即可:

项目搭建

新建一个springboot项目

通过IDEA搭建项目,什么都不需要选择,一直下一步就可以了:

修改pom文件

最主要的就是两点:

1.properties标签中添加


 
  1. <docker.image.prefix>demo</docker.image.prefix>

2.添加新的plugin标签


 
  1. <plugin>
  2. <groupId>com.spotify</groupId>
  3. <artifactId>docker-maven-plugin</artifactId>
  4. <version>1.2.1</version>
  5. <configuration>
  6. <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
  7. <dockerDirectory></dockerDirectory>
  8. <resources>
  9. <resource>
  10. <targetPath>/</targetPath>
  11. <directory>${project.build.directory}</directory>
  12. <include>${project.build.finalName}.jar</include>
  13. </resource>
  14. </resources>
  15. </configuration>
  16. </plugin>

下面是完整的pom文件:


 
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.2.1.RELEASE</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.example</groupId>
  12. <artifactId>demo</artifactId>
  13. <version>0.0.1</version>
  14. <name>demo</name>
  15. <description>Demo project for Spring Boot</description>
  16.  
  17. <properties>
  18. <java.version>1.8</java.version>
  19. <docker.image.prefix>demo</docker.image.prefix>
  20. </properties>
  21.  
  22. <dependencies>
  23.  
  24. <dependency>
  25. <groupId>org.springframework.boot</groupId>
  26. <artifactId>spring-boot-starter</artifactId>
  27. </dependency>
  28.  
  29. <dependency>
  30. <groupId>org.springframework.boot</groupId>
  31. <artifactId>spring-boot-starter-web</artifactId>
  32. </dependency>
  33.  
  34. <dependency>
  35. <groupId>org.springframework.boot</groupId>
  36. <artifactId>spring-boot-starter-test</artifactId>
  37. <scope>test</scope>
  38. <exclusions>
  39. <exclusion>
  40. <groupId>org.junit.vintage</groupId>
  41. <artifactId>junit-vintage-engine</artifactId>
  42. </exclusion>
  43. </exclusions>
  44. </dependency>
  45. </dependencies>
  46.  
  47. <build>
  48. <plugins>
  49. <plugin>
  50. <groupId>org.springframework.boot</groupId>
  51. <artifactId>spring-boot-maven-plugin</artifactId>
  52. </plugin>
  53. <plugin>
  54. <groupId>com.spotify</groupId>
  55. <artifactId>docker-maven-plugin</artifactId>
  56. <version>1.2.1</version>
  57. <configuration>
  58. <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
  59. <dockerDirectory></dockerDirectory>
  60. <resources>
  61. <resource>
  62. <targetPath>/</targetPath>
  63. <directory>${project.build.directory}</directory>
  64. <include>${project.build.finalName}.jar</include>
  65. </resource>
  66. </resources>
  67. </configuration>
  68. </plugin>
  69. </plugins>
  70. </build>
  71.  
  72. </project>

新建Dockerfile文件

需要在根目录下新建Dockerfile文件


 
  1. #指定基础镜像,在其上进行定制
  2. FROM java:8
  3.  
  4. #维护者信息
  5. MAINTAINER zhouzhaodong <xiuaiba@163.com>
  6.  
  7. #这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
  8. VOLUME /tmp
  9.  
  10. #复制上下文目录下的target/demo-1.0.0.jar 到容器里
  11. COPY target/demo-0.0.1.jar demo-1.0.0.jar
  12.  
  13. #bash方式执行,使demo-1.0.0.jar可访问
  14. #RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
  15. RUN bash -c "touch /demo-1.0.0.jar"
  16.  
  17. #声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
  18. EXPOSE 8080
  19.  
  20. #指定容器启动程序及参数 <ENTRYPOINT> "<CMD>"
  21. ENTRYPOINT ["java","-jar","demo-1.0.0.jar"]

新建controller文件

别忘记在pom文件中添加web依赖。


 
  1. @RestController
  2. public class testController {
  3.  
  4. @RequestMapping("/")
  5. public String test(){
  6. return "test Docker";
  7. }
  8.  
  9. }

maven打包

install打包:

生成jar包:

新建配置

新建Dockerfile运行配置:

添加如下信息,找到自己写的Dockerfile文件,配置端口映射:

生成Docker镜像并运行

直接运行刚才新建的Dockerfile运行配置即可:

运行成功后log窗口会出现项目运行的信息:

访问对应的地址即可显示我们输入的信息:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

分享到:

相关信息

  • Nginx主机域名配置实现

    一、配置多个端口访问不同文件 二、配置不同域名访问不同文件 三、配置不同域名访问同个文件...

    2023-03-17

  • Nginx配置-日志格式配置方式

    上线了一个小的预约程序,配置通过Nginx进行访问入口,默认的日志是没有请求时间的,因此需要配置一下,将每一次的请求的访问响应时间记录出来,备查与优化使用....

    2023-03-17

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载