标签:rip 停止 端口 存在 声明 pre touch 系统启动 touch命令
背景说明:
一个springboot小项目,通过容器化方式部署。当修改工程源码后打包成jar,不想每次都重新进行docker build生成新的镜像,则采用挂载方式,dockerfile如下:
# 容器化部署方案 # Docker image for springboot file run # VERSION 0.0.1 # Author: zhaoxx # #################################################################### # # Description: # 1、如使用docker部署,当前文件需要放到服务器/home/docker/路径下 # 2、当前工程生成的jar也要放到/home/docker/路径下 # 3、构建镜像:docker build -t 自定义镜像名称 . # 4、启动容器:docker run -d -p 8080:8080 -v 自定义存放目录:VOLUME目录 自定义镜像名称 # # 后续启动:docker start 镜像名称 # 后续停止:docker stop 镜像名称 # 或者可视化插件中停止与启动 # #################################################################### # # 基础镜像使用java FROM java:8 # 声明运行时容器的端口,对应项目端口 EXPOSE 8080 # 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等 VOLUME /home/kafka-deliverer # 将jar包添加到容器中,可以更名,后者为容器中jar #ADD kafka-deliverer-1.0.jar kafka-deliverer-1.0.jar # 指定工作目录 WORKDIR /home/kafka-deliverer # sh -c是将后面命令视为一个整体,touch命令实则改变了jar的时间,并无其它意义 RUN sh -c ‘touch /kafka-deliverer-1.0.jar‘ # 此处命令为启动容器 # "-Djava.security.egd=file:/dev/./urandom"java参数,可靠的产生随机数,此处目的是加快系统启动,如果存在tomcat建议使用此参数 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/kafka-deliverer-1.0.jar"]
dockerfile中注释已经明确,第一次需要构建镜像,同时执行“docker run -d -p 8080:8080 -v 自定义存放目录:VOLUME目录 自定义镜像名称”启动容器,后续更改了jar后,只需把jar放到自定义存放目录即可
然后执行“docker restart 容器名称”
标签:rip 停止 端口 存在 声明 pre touch 系统启动 touch命令
原文地址:https://www.cnblogs.com/Arthemis-z/p/13344991.html