当前位置: 首页 > 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.xdnf.cn/news/1454563.html

相关文章:

  • 若依微服务遇到的配置问题
  • 【数据可视化-108】2025年6月新能源汽车零售销量TOP10车企分析大屏(PyEcharts炫酷黑色主题可视化)
  • JUnit 详解
  • Rust+slint实现一个登录demo
  • 一文搞懂保险中的Nominee\Beneficiary\Trustee三个角色
  • Rustdesk搭建与客户端修改与编译
  • 从零开始的云计算生活——第五十八天,全力以赴,Jenkins部署
  • MD 格式说明
  • Web与Nginx网站服务
  • 2023 arXiv MapperGPT: Large Language Models for Linking and Mapping Entities
  • # 开发中使用——鸿蒙CoreSpeechKit让文字发声后续
  • 迈威通信从送快递角度教你分清网络二层和三层
  • 美团开源龙猫大模型,与DeepSeek V3同一梯队?
  • matlab实现希尔伯特变换(HHT)
  • vue2 打包生成的js文件过大优化
  • 白平衡分块统计数据为什么需要向下采样?
  • Web应用安全入门:从OWASP Top 10理解SQL注入与纵深防御
  • GcWord V8.2 新版本:TOA/TA字段增强、模板标签管理与PDF导出优化
  • 政务级数据安全!小陌GEO引擎的私有化部署实践指南
  • 机器学习 - 使用 ID3 算法从原理到实际举例理解决策树
  • 【开题答辩全过程】以宠物应急救援平台为例,包含答辩的问题和答案
  • 视频增强AI哪个效果好?实战对比帮你找到最适合的工具
  • 【Python基础】 14 Rust 与 Python 标识符命名规则与风格对比笔记
  • 中值滤波、方框滤波、高斯滤波、均值滤波、膨胀、腐蚀、开运算、闭运算
  • 2025年数学建模国赛C题超详细解题思路
  • [免费]基于Python的Django+Vue图书借阅推荐系统【论文+源码+SQL脚本】
  • 设计模式最佳实践 - 模板模式 + 责任链模式
  • PyTorch 学习率调度器(LR Scheduler)
  • HTB Sau
  • MySQL数据库和SQL语言