一、前提
- 安装Docker
- 熟悉Docker常用的命令
二、SpringBoot项目
-
编写一个简单的springboot项目。
-
pom.xml文件
properties 中添加 <properties> <java.version>1.8</java.version> <!--properties节点中设置docker镜像的前缀“springboot”--> <docker.image.prefix>springboot</docker.image.prefix> </properties> build 中添加 <!-- 添加 Docker 构建插件:--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- Docker maven 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> -
启动类,Application
@GetMapping("/") public String index() { return "你好,docker"; }![]()
-
测试项目是否创建成功
-
成功,将springboot项目打jar包
三、创建Dockerfile 文件
-
vim Dockerfile 创建文件
-
内容
FROM openjdk:8-jdk-alpine VOLUME /tmp ADD dockerdemo01-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] FROM ,表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载 VOLUME ,VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录 ADD ,拷贝文件并且重命名 ENTRYPOINT ,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为ENTRYPOINT
四、构建项目镜像
-
将SpringBoot jar 包移到Dockerfile同一级目录下
-
docker build -t myspringboot . 通过dockerfile构建镜像
![]()
-
docker images 查询镜像
![]()
-
docker run -it -p 8080:8080 myspringboot 运行该镜像
![]()
-
验证是否成功
根据linux主机IP地址 访问
![]()
五、构建其他的DockerFile
- 以centos为基本镜像,添加jdk,添加springboot jar 包
FROM centos
VOLUME /tmp
ADD dockerdemo01-0.0.1-SNAPSHOT.jar app.jar
#把当前目录下的jdk文件夹添加到镜像
ADD jdk1.8.0_121 jdk1.8.0_121
#添加环境变量
ENV JAVA_HOME /jdk1.8.0_121
ENV PATH $PATH:$JAVA_HOME/bin
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
有任何问题,可以给我留言、评论





浙公网安备 33010602011771号