1. 将要部署的jar包和Dockerfile文件放在同一目录下
[root@localhost springboot]# ll
总用量 24496
-rw-r--r--. 1 root root 441 1月 31 10:12 Dockerfile
-rw-r--r--. 1 root root 25077820 1月 31 10:05 learn-0.0.1-SNAPSHOT.jar
2. Dockerfile文件内容
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER maogy
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为my_docker.jar
ADD learn-0.0.1-SNAPSHOT.jar my_docker.jar
# 运行jar包
RUN bash -c 'touch /my_docker.jar'
ENTRYPOINT ["java","-jar","/my_docker.jar"]
#暴露8090端口作为微服务
EXPOSE 8090
3. 构建docker镜像
[root@localhost springboot]# docker build -t my_spring:1.0 .
Sending build context to Docker daemon 25.08MB
Step 1/7 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete
fce5728aad85: Pull complete
76610ec20bf5: Pull complete
60170fec2151: Pull complete
e98f73de8f0d: Pull complete
11f7af24ed9c: Pull complete
49e2d6393f32: Pull complete
bb9cdec9c7f3: Pull complete
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8
---> d23bdf5b1b1b
Step 2/7 : MAINTAINER maogy
---> Running in fe79ccce7d9a
Removing intermediate container fe79ccce7d9a
---> 5dbcc1dc24e7
Step 3/7 : VOLUME /tmp
---> Running in 353d66bccccf
Removing intermediate container 353d66bccccf
---> 16ce482d2ab3
Step 4/7 : ADD learn-0.0.1-SNAPSHOT.jar my_docker.jar
---> 55a7a6e25bb6
Step 5/7 : RUN bash -c 'touch /my_docker.jar'
---> Running in 57cb684e7d13
Removing intermediate container 57cb684e7d13
---> 01aa60441b8c
Step 6/7 : ENTRYPOINT ["java","-jar","/my_docker.jar"]
---> Running in af248b0b59a8
Removing intermediate container af248b0b59a8
---> c0947b0db8a2
Step 7/7 : EXPOSE 8090
---> Running in 55f5f2b6dc6f
Removing intermediate container 55f5f2b6dc6f
---> 469148f6de8f
Successfully built 469148f6de8f
Successfully tagged my_spring:1.0
[root@localhost springboot]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my_spring 1.0 469148f6de8f 6 minutes ago 693MB
docker build 参数说明:
-t 指定镜像名称及版本
-f 指定Dockerfile文件,默认当前目录下的Dockerfile文件
4. 运行docker镜像文件
[root@localhost springboot]# docker run -d -p 8090:8090 my_spring:1.0
7c0b055007fd45d7b9fa51ceaa0925d3b6a4105704837aababc1d3a5c2a02ca2
[root@localhost springboot]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c0b055007fd 469148f6de8f "java -jar /my_docke…" 6 seconds ago Up 5 seconds 0.0.0.0:8090->8090/tcp, :::8090->8090/tcp flamboyant_ganguly
5. 校验服务
[root@localhost springboot]# curl -X GET http://192.168.238.129:8090/index
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title>Spring boot 视图解析器</title>
</head>
<body>
<h1>测试视图解析器</h1>
</body>
</html>