# springBootDocker **Repository Path**: codezhx_admin/springBootDocker ## Basic Information - **Project Name**: springBootDocker - **Description**: 使用 docker 来启动 springboot项目 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-09-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # springBootDocker #### 项目介绍 使用 docker 来启动 springboot项目 springBoot版本:2.0.4.RELEASE #### 项目构建顺序 - 使用spring Initialzr 初始化项目(需要 web-start) - 初始化一个RestController 并且可以启动项目后进行访问 - 在pom.xml 文件中 新增 zhxspringboot 在 properties 节点中 - 在pom.xml 文件中 新增 plugins ``` com.spotify docker-maven-plugin ${docker.image.prefix}/${project.artifactId} src/main/docker / ${project.build.directory} ${project.build.finalName}.jar ``` - 在src/main/docker 下创建 Dockerfile文件(注意大小写) 文件包含以下内容 其中yourJarName 是你jar包的名字 ``` FROM openjdk:8-jdk-alpine VOLUME /tmp ADD yourJarName.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 1. FROM ,表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载 2. VOLUME ,VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录 3. ADD ,拷贝文件并且重命名 4. ENTRYPOINT ,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT - 确保机器内部mvn jdk 环境 正确后 使用命令 mvn package docker:build 如果使用的是ide 开发工具的话可以直接在 edit configurations 中添加 maven 然后在 command line 中加入 mvn package docker:build 命令 - 运行命令 - 运行成功的情况下: ``` Step 2/4 : VOLUME /tmp ---> Running in badd2e445fd9 ---> b02e14ad9f5a Removing intermediate container badd2e445fd9 Step 3/4 : ADD docker-0.0.1-SNAPSHOT.jar app.jar ---> 879c480a31a0 Step 4/4 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar ---> Running in 48108fb5a1f2 ---> ac233e7d67f2 Removing intermediate container 48108fb5a1f2 ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null} Successfully built ac233e7d67f2 Successfully tagged zhxspringboot/docker:latest [INFO] Built zhxspringboot/docker [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS ``` - 打开命令行 输入 docker images 可以看到刚才打包的镜像 ``` ages REPOSITORY TAG IMAGE ID CREATED SIZE zhxspringboot/docker latest ac233e7d67f2 10 minutes ago 119MB openjdk 8-jdk-alpine 5801f7d008e5 7 weeks ago 103MB alpine latest e21c333399e0 9 months ago 4.14MB centos latest 3fa822599e10 9 months ago 204MB prom/prometheus latest 67141fa03496 9 months ago 80.2MB ``` - docker run -p 8080:8080 -t yourname/yourname 在命令行中输入如下命令 即可开始跑你的服务 - 启动完成之后我们使用docker ps查看正在运行的镜像 - 打开浏览器 即可访问服务