筹备工作
- 一个打包好的我的项目 jar 包
- 一个编写好的 Dockerfile 文件
- 当然打包成 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
启动胜利