这篇文章主要介绍了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