乐趣区

关于dockerfile:超级小白超级简单之springboot项目打包成docker镜像并且运行

筹备工作

  1. 一个打包好的我的项目 jar 包
  2. 一个编写好的 Dockerfile 文件
  3. 当然打包成 docker 环境就必须有一个 docker 环境了,这里我的 docker 环境是放在 centos 中的

我的项目打 jar 包

这里我用的是 idea, 所以我这里说 idea 的我的项目打包办法

mvn clean package # 应用 Maven 打包我的项目


这里我打好的 jar 包被我重命名为 gclient.jar

编写 Dockerfile 文件

这里我是这样编写的

# 基于哪个镜像,须要用一个已有的镜像做载体来创立,这里我应用的 java8 镜像,如果大家的 docker 镜像中没有 java8,它就会主动去下载
FROM java:8

# 将本地文件夹挂载到以后容器,指定 /tmp 目录并长久化到 Docker 数据文件夹,因为 Spring Boot 应用的内嵌 Tomcat 容器默认应用 /tmp 作为工作目录
VOLUME /tmp

# 增加本人的我的项目到 app.jar 中   这里我是取了 app.jar 的名字,这个名字能够轻易取的,只有前面几行名字和这个对立就好了
ADD gclient.jar app.jar
# 这一行我还是不太分明啥意思 等我懂了我再补上
RUN bash -c 'touch /app.jar'

# 凋谢 8761 端口
EXPOSE 8761

# ENTRYPOINT 指定容器运行后默认执行的命令
ENTRYPOINT ["java","-jar","/app.jar"]
#"-Djava.security.egd=file:/dev/./urandom"  这个我不晓得是啥意思,这里我就去掉了

好 Dockerfile 编写也实现了

把 Dockerfile 和 gclient.jar 放在同一个目录上面

这里我把这两个文件都放在了我的虚拟机上面的 rpa 文件夹下

创立镜像

在这个目录下运行命令

docker build -t gclient .

这里留神,gclient 只是我要起的一个名字,大家创立的时候名字能够轻易写的好吧,下面的. 我没有写错啊和创立的镜像的名字有一个空格的间隔。

创立好的截图如上

运行容器

下面的 Dockerfile 中我写了我要凋谢的端口 8761,然而我这个我的项目启动的时候要拜访 8080 端口,所以我要运行这个容器就要这样写

docker run -p 8761:8080 gclient

启动胜利

退出移动版