0
点赞
收藏
分享

微信扫一扫

SpringBoot项目Docker化并上传DockerHub的使用过程

追风骚年 2022-08-29 阅读 157


springboot项目 docker化

添加依赖

SpringBoot项目Docker化并上传DockerHub的使用过程_docker

代码片段:

<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<configuration>
<!-- 这里是最终生成的docker镜像名称 -->
<imageName>${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<!-- 基础镜像,运行一个springboot应用只需要基础的java环境就行 -->
<baseImage>java:8</baseImage>
<!-- docker启动的时候执行的命令 -->
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

创建 Dockerfile

在src/main下新建docker目录,在该目录下建立Dockerfile文件

SpringBoot项目Docker化并上传DockerHub的使用过程_jar_02

代码片段:

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD wisdom-house-area-server-1.0.0.war app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

生成jar包

SpringBoot项目Docker化并上传DockerHub的使用过程_docker_03

将该war包复制到docker目录下

生成docker镜像

在项目目录下 执行

mvn docker:build -Dmaven.test.skip=true

SpringBoot项目Docker化并上传DockerHub的使用过程_spring_04

查看docker镜像

docker images |grep wisdom-house-area-server

SpringBoot项目Docker化并上传DockerHub的使用过程_jar_05

运行docker镜像

docker run -d -p 8081:8085 wisdom-house-area-server

注意1:8085是 springboot项目配置文件中配置的端口号
注意2:springboot项目访问本地数据库要使用本地的ip 不要使用127.0.0.1 否则在本容器中找不到数据库服务
注意3: 8081端口是宿主机上的端口

SpringBoot项目Docker化并上传DockerHub的使用过程_docker_06SpringBoot项目Docker化并上传DockerHub的使用过程_jar_07

测试

访问 http://192.168.50.100:8081/

SpringBoot项目Docker化并上传DockerHub的使用过程_jar_08

上传docker镜像

  • 登陆dokcer账号

docker login

SpringBoot项目Docker化并上传DockerHub的使用过程_spring_09

  • 查看正在运行的container-id

docker ps |grep wisdom-house-area-server

SpringBoot项目Docker化并上传DockerHub的使用过程_jar_10

  • 提交容器到dockerhub中

docker commit 7f043676e51c mengfanxiao/springboot-area

mengfanxiao 是我的dockerhub账号
springboot-area 是资源名称

  • 将镜像push到dockerhub中

docker push mengfanxiao/springboot-area:latest

latest是创建镜像时的tag

SpringBoot项目Docker化并上传DockerHub的使用过程_spring_11

  • 验证
    1⃣️ 用命令验证

docker inspect mengfanxiao/springboot-area:latest

SpringBoot项目Docker化并上传DockerHub的使用过程_spring_12


2⃣️ 去dockerhub查看

https://id.docker.com/


SpringBoot项目Docker化并上传DockerHub的使用过程_spring_13

使用docker镜像

docker pull mengfanxiao/springboot-area:latest

SpringBoot项目Docker化并上传DockerHub的使用过程_jar_14

参考文献

https://www.jianshu.com/p/f341ef523d18


举报

相关推荐

0 条评论