docker启动后端服务
1.创建项目文件夹
一般情况下项目文件夹创建是在home文件夹下建立。如果项目中存在需要进行查看的文件,可以通过docker中 挂载的形式将文件挂载到宿主机对应文件夹中
2.编写DockerFile文件
# 设置基础镜像(只需要java运行时环境,如果镜像中无此镜像,则会进行下载再创建镜像)
FROM adoptopenjdk:8-jre
# 设置工作目录 进入docker容器后自动定位的目(不用修改直接复制即可)
WORKDIR /opt/
# 复制jar程序包 当前宿主机目录下的jar包复制到docker工作目录(jar包与dockerfile的相对关系,一般放到同级目录下)
ADD ./quick-develop-generator-1.0.0.jar /opt/quick-develop-generator-1.0.0.jar
# 设置时区(不用修改直接复制即可)
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# 运行jar程序(命令 java -jar <jar包>)
ENTRYPOINT ["java","-jar","quick-develop-generator-1.0.0.jar"]
3.编写shell脚本
将创建镜像以及启动容器操作合二为一,简化为一步操作,简化后期更新服务,重新部署的操作
# 定义容器名称
container_name='develop-generator'
# 停止容器
docker stop ${container_name}
echo '----stop container ok----'
# 删除容器
docker rm -f ${container_name}
echo '----remove container ok----'
# 删除镜像
docker rmi develop-generator:1.0.0
echo '----remove image ok----'
# dockerfile启动创建镜像 (.代表dockerFile文件与编写的脚本文件同级)
docker build -t develop-generator:1.0.0 .
# 启动容器(一般情况下需要将时间挂载与服务器时间相同,不然有可能会导致系统得到时间与实际时间不同)
docker run -id -p 7500:7500 --name=develop-generator -v /etc/localtime:/etc/localtime -v /home/quick-develop/generator/file:/home/quick-develop/generator/file develop-generator:1.0.0
注意事项
由于上述系统需要在宿主机中获取到文件信息,采用挂载的形式将对应文件的文件夹与容器中文件夹对应。
4.将三者放入同一目录
将shell脚本、dockerfile文件、服务包放入同一文件夹下,如图所示
5.启动shell脚本
# 切换到shell脚本文件夹中
cd /home/quick-develop/generator/server
# 启动shell脚本
sh genenrator.sh
注意事项
当服务器中不存在dockerfile定义的镜像时,服务器会优先拉取需要的环境镜像,拉取成功后再将服务打包成docker镜像。
6.查看服务是否启动成功
docker ps -a
,服务器会优先拉取需要的环境镜像,拉取成功后再将服务打包成docker镜像。
6.查看服务是否启动成功
docker ps -a
标签:服务,develop,generator,启动,jar,文件夹,镜像,docker
From: https://blog.csdn.net/m0_56512023/article/details/139408080