一、准备工作
springboot项目已打成jar包
docker已安装
系统:centOS
二、部署过程
- 在centOS中新建文件夹,如test
mkdir /docker/test
- 将jar包传入文件夹总,如test-1.0.0.jar
- 在test文件夹中新建Dockerfile文件
vi Dockerfile
文件内容为
#jdk环境
FROM java:8
#系统目录映射
VOLUME /tmp
#将test文件夹中的jar包加载进来并重命名
ADD test-1.0.0.jar test.jar
#项目使用端口
EXPOSE 8084
#设置容器内时区和java项目内时区
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
#运行jar包
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/test.jar"]
- 创建docker镜像,命名为test。应进入test目录再运行下面命令。
docker build -t test .
- 创建并启动容器“test”
docker run --name test -it -v /docker/test/test-1.0.0.jar:/test.jar --privileged=true -d -p 8084:8084 test
这里将test下的jar包直接映射给了镜像里的jar包,之后只需要暂停容器,并在linux中更新jar包,再重启容器即可完成java项目的更新。注意新jar包的名字要和旧jar包相同。
后面8084端口可根据具体项目修改。
更多的文件或文件目录映射可使用“外部文件地址:容器内地址”的格式自行加入上面的语句中,如上图中的"/docker/test/test-1.0.0.jar:/test.jar"。
- 等待一会可访问项目查看是否正常启动