准备工作
- 一个打包好的项目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
# 运行过程中创建一个app.jar文件
RUN bash -c 'touch /app.jar'
# 开放8761端口
EXPOSE 8761
# ENTRYPOINT指定容器运行后默认执行的命令
ENTRYPOINT ["java","-jar","/app.jar"]
#"-Djava.security.egd=file:/dev/./urandom" 这个我不知道是啥意思,这里我就去掉了
好Dockerfile编写也完成了
改成这个镜像体积会变得更小,不过我没试过,有兴趣的可以试一试
FROM docker.io/jeanblanchard/alpine-glibc
把Dockerfile和gclient.jar放在同一个目录下面
这里我把这两个文件都放在了我的虚拟机下面的rpa文件夹下
创建镜像
在这个目录下运行命令
docker build -t gclient .
这里注意,gclient只是我要起的一个名字,大家创建的时候名字可以随便写的好吧,上面的.我没有写错啊和创建的镜像的名字有一个空格的距离。
创建好的截图如上
运行容器
上面的Dockerfile中我写了我要开放的端口8761,但是我这个项目启动的时候要访问8080端口,所以我要运行这个容器就要这样写
docker run -p 8761:8080 -d gclient
启动成功,这里-d就是以守护进程的方式运行,如果不加的话,就会出现如我下图显示的东西一样,这个时候按crtl + c
就可以结束,所以加上-d
看docker容器日志我常用的两种方法
docker logs -f --tail 500 容器id
实时倒数500行日志,这个很实用docker logs --since 5m 容器id
容器倒数五分钟内的日志
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。