这篇文章主要介绍了docker部署springboot项目实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
创建项目
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<? xml version = "1.0" encoding = "UTF-8" ?> < 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" > < modelVersion >4.0.0</ modelVersion > < parent > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-parent</ artifactId > < version >2.1.9.RELEASE</ version > < relativePath /> <!-- lookup parent from repository --> </ parent > < groupId >com.topcheer</ groupId > < artifactId >docker</ artifactId > < version >0.0.1-SNAPSHOT</ version > < name >docker</ name > < description >Demo project for Spring Boot</ description > < properties > < java.version >1.8</ java.version > < docker.image.prefix >topcheer</ docker.image.prefix > </ properties > < dependencies > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > </ dependency > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-test</ artifactId > < scope >test</ scope > </ dependency > </ dependencies > < build > < plugins > < plugin > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-maven-plugin</ artifactId > </ plugin > < plugin > < groupId >com.spotify</ groupId > < artifactId >docker-maven-plugin</ artifactId > < version >1.0.0</ version > < configuration > < imageName >${docker.image.prefix}/${project.artifactId}</ imageName > < dockerDirectory >src/main/docker</ dockerDirectory > < resources > < resource > < targetPath >/</ targetPath > < directory >${project.build.directory}</ directory > < include >${project.build.finalName}.jar</ include > </ resource > </ resources > </ configuration > </ plugin > </ plugins > </ build > </ project > |
启动类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
@SpringBootApplication @Controller public static void main(String[] args) { SpringApplication.run(DockerApplication. class , args); } @RequestMapping ( "/user/find" ) @ResponseBody public Object findUser(){ Map<String, String > map = new HashMap<>(); map.put( "name" , "xdclass.net" ); map.put( "age" , "28" ); return map; } } |
由于harbor没有安装,无法把镜像推到私有镜像仓库上,所以先手动执行。
mvn install,然后把dockerfile和jar包放到一起
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@topcheer docker] # ll 总用量 16452 -rw-r--r-- 1 root root 168 10月 28 14:24 Dockerfile -rw-r--r-- 1 root root 16842487 10月 28 14:17 docker.jar [root@topcheer docker] # cat Dockerfile FROM java:8 VOLUME /tmp ADD docker.jar app.jar RUN bash -c 'touch /app.jar' EXPOSE 8080 ENTRYPOINT [ "java" , "-Djava.security.egd=file:/dev/./urandom" , "-jar" , "/app.jar" ] [root@topcheer docker] # |
编译成镜像并启动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
[root@topcheer docker] # docker build -f Dockerfile -t boot . Sending build context to Docker daemon 16.85 MB Step 1 /6 : FROM java:8 ---> d23bdf5b1b1b Step 2 /6 : VOLUME /tmp ---> Running in 35037b5a7791 ---> e96b96457c78 Removing intermediate container 35037b5a7791 Step 3 /6 : ADD docker.jar app.jar ---> 06bcfdcff437 Removing intermediate container 2e2e5e559ae4 Step 4 /6 : RUN bash -c 'touch /app.jar' ---> Running in 16441febc271 ---> 1779caa23f77 Removing intermediate container 16441febc271 Step 5 /6 : EXPOSE 8080 ---> Running in 14dd752ce247 ---> 505044f5cdf8 Removing intermediate container 14dd752ce247 Step 6 /6 : ENTRYPOINT java -Djava.security.egd= file : /dev/ . /urandom -jar /app .jar ---> Running in 832e4ca95dd2 ---> 1cb7bd139478 Removing intermediate container 832e4ca95dd2 Successfully built 1cb7bd139478 [root@topcheer docker] # docker images REPOSITORY TAG IMAGE ID CREATED SIZE boot latest 1cb7bd139478 About a minute ago 677 MB registry.cn-hangzhou.aliyuncs.com /dalianpai/topcheer zipkin 17c2bb09f482 6 days ago 154 MB docker.io /mysql latest c8ee894bd2bd 11 days ago 456 MB elasticsearch latest 874179f19603 4 weeks ago 771 MB docker.io /nacos/nacos-server latest a4229ac5cc19 4 weeks ago 710 MB springbootdemo4docker latest cd13bc7f56a0 5 weeks ago 678 MB docker.io /tomcat latest ee48881b3e82 6 weeks ago 506 MB docker.io /rabbitmq latest a00bc560660a 6 weeks ago 147 MB docker.io /centos latest 67fa590cfc1c 2 months ago 202 MB docker.io /redis latest f7302e4ab3a8 2 months ago 98.2 MB docker.io /rabbitmq 3.7.16-management 3f92e6354d11 3 months ago 177 MB docker.io /elasticsearch 6.8.0 d0b291d7093b 5 months ago 895 MB docker.io /hello-world latest fce289e99eb9 10 months ago 1.84 kB docker.io /java 8 d23bdf5b1b1b 2 years ago 643 MB [root@topcheer docker] # docker run -d -p 8080:8080 boot 882ff5209aa2f40972a914b901750a50320faea65100b33e57b9c8a41533ca0b |
测试
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/dalianpai/p/11752311.html