当前位置: 首页 > news >正文

docker更新jar包,懒人执行脚本

以下是一个用于启动 Docker 容器的脚本,适用于快速部署通过挂载方式运行的 JAR 应用,包含启动、停止、重启和查看状态等功能:

#!/bin/bash
# 完整重建Docker容器和镜像的脚本
# 流程:停止容器 → 删除镜像 → 删除容器 → 构建镜像 → 启动容器# 配置参数
CONTAINER_NAME="back-service"  # 容器名称
IMAGE_NAME="back-service"          # 镜像名称
IMAGE_TAG="latest"                 # 镜像标签
DOCKERFILE_PATH="./"               # Dockerfile所在目录(当前目录为.)
# 容器端口
HOST_PORT=8881                     # 宿主机端口
CONTAINER_PORT=8881                # 容器端口# 函数:停止容器
stop_container() {if [ "$(docker ps -q -f name=$CONTAINER_NAME)" ]; thenecho "正在停止容器 $CONTAINER_NAME..."docker stop $CONTAINER_NAMEif [ $? -eq 0 ]; thenecho "容器 $CONTAINER_NAME 已停止"elseecho "停止容器 $CONTAINER_NAME 失败"exit 1fielseecho "容器 $CONTAINER_NAME 未在运行"fi
}# 函数:删除容器
remove_container() {if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; thenecho "正在删除容器 $CONTAINER_NAME..."docker rm $CONTAINER_NAMEif [ $? -eq 0 ]; thenecho "容器 $CONTAINER_NAME 已删除"elseecho "删除容器 $CONTAINER_NAME 失败"exit 1fielseecho "容器 $CONTAINER_NAME 不存在"fi
}# 函数:删除镜像
remove_image() {if [ "$(docker images -q $IMAGE_NAME:$IMAGE_TAG)" ]; thenecho "正在删除镜像 $IMAGE_NAME:$IMAGE_TAG..."docker rmi $IMAGE_NAME:$IMAGE_TAGif [ $? -eq 0 ]; thenecho "镜像 $IMAGE_NAME:$IMAGE_TAG 已删除"elseecho "删除镜像 $IMAGE_NAME:$IMAGE_TAG 失败(可能被其他容器引用)"exit 1fielseecho "镜像 $IMAGE_NAME:$IMAGE_TAG 不存在"fi
}# 函数:构建镜像
build_image() {echo "正在构建镜像 $IMAGE_NAME:$IMAGE_TAG..."docker build -t $IMAGE_NAME:$IMAGE_TAG $DOCKERFILE_PATHif [ $? -eq 0 ]; thenecho "镜像 $IMAGE_NAME:$IMAGE_TAG 构建成功"elseecho "镜像 $IMAGE_NAME:$IMAGE_TAG 构建失败"exit 1fi
}# 函数:启动容器
start_container() {echo "正在启动容器 $CONTAINER_NAME..."docker run -d \--name $CONTAINER_NAME \-p $HOST_PORT:$CONTAINER_PORT \$IMAGE_NAME:$IMAGE_TAGif [ $? -eq 0 ] && [ "$(docker ps -q -f name=$CONTAINER_NAME)" ]; thenecho "容器 $CONTAINER_NAME 启动成功"echo "访问地址: http://localhost:$HOST_PORT"elseecho "容器 $CONTAINER_NAME 启动失败"exit 1fi
}# 主流程执行
echo "===== 开始执行容器重建流程 ====="
stop_container
remove_container  # 先删除容器再删除镜像,避免镜像被占用
remove_image
build_image
start_container
echo "===== 容器重建流程执行完毕 ====="
http://www.dtcms.com/a/366769.html

相关文章:

  • MaxKB4j智能体平台 Docker Compose 快速部署教程
  • 飞算JavaAI全面解析:重塑Java开发流程的智能引擎
  • 【数学建模】用Matlab玩转图论:从画图到求最短路径
  • 想要给文档加密?2025年顶尖文件加密软件分享
  • C++并发编程-23. 线程间切分任务的方法
  • uniapp vue页面传参到webview.nvue页面的html或者另一vue中
  • Web应用:返回图片URL
  • Python快速入门专业版(一):Windows/macOS/Linux 系统环境搭建(附常见报错解决)
  • 【连接器专题】案例:带屏蔽膜FPC出现概率性短路,真是供应商的锅?
  • EasyVoice与cpolar:构建私域有声平台的本地化方案
  • Spring线程池ThreadPoolTaskExecutor‌详解
  • 隔空盗刷、AI钓鱼、代理劫持…金融黑产竟进化至此?
  • Elasticsearch 8 中 Nested 数据类型的使用方法
  • 【iOS】 懒加载
  • 一文吃透 CSS 伪类:从「鼠标悬停」到「斑马纹表格」的 30 个实战场景
  • 中值滤波、方框滤波、高斯滤波、均值滤波、膨胀、腐蚀、开运算、闭运算
  • HTML图片标签及路径详解
  • Python开篇撬动未来的万能钥匙 从入门到架构的全链路指南
  • 工厂模式总结
  • C++知识
  • C 盘清理技巧分享:释放磁盘空间,提升系统性能
  • 将 PDF 转换为 TIFF 图片:简单有效的 Java 教程
  • 数据传输,数据解析与写数据库
  • django全国小米su7的行情查询系统(代码+数据库+LW)
  • 阿瓦隆 A15 Pro 221TH/S:SHA-256 算力与高效能耗
  • 大模型部署全攻略:Docker+FastAPI+Nginx搭建高可用AI服务
  • Linux 编译 Android 版 QGroundControl 软件并运行到手机上
  • 一天涨幅2000倍的期权有吗?
  • (JVM)四种垃圾回收算法
  • ArcGIS学习-15 实战-建设用地适宜性评价