docker springboot 运维部署详细实例
环境安装
[root@iZbp1dcnzq7pzpg9607m6pZ ~]# docker -v
Docker version 26.1.4, build 5650f9b
镜像构建
Dockerfile 文件内容
FROM openjdk:8
# Author Info 创建人信息
MAINTAINER ratelcloud@foxmail.com
ENV PORT=20001
EXPOSE 20001
RUN mkdir /usr/local/ratel-boot-server
WORKDIR /usr/local/ratel-boot-server
# Rename Jar File To Container
COPY ratel-boot-server.jar ./ratel-boot-server.jar
# Run Config
ENTRYPOINT [ "java", "-java", "/ratel-boot-server.jar" ]
自己打包的 jar 包
-rw-r--r-- 1 root root 336 Dec 17 11:50 Dockerfile
-rwxrwxrwx 1 root root 65123176 Dec 13 17:59 ratel-boot-server.jar
[root@iZbp1dcnzq7pzpg9607m6pZ ~]# ls
Dockerfile ratel-boot-server.jar
根据 Dockerfile 构建镜像
docker build -t ratel-boot-server:v1.0.0 .[root@iZbp1dcnzq7pzpg9607m6pZ ~]# docker build -t ratel-boot-server:v1.0.0 .
[+] Building 0.2s (9/9) FINISHED docker:default=> [internal] load build definition from Dockerfile 0.0s=> => transferring dockerfile: 375B 0.0s=> [internal] load metadata for docker.io/library/openjdk:8 0.0s=> [internal] load .dockerignore 0.0s=> => transferring context: 2B 0.0s=> [1/4] FROM docker.io/library/openjdk:8 0.0s=> [internal] load build context 0.0s=> => transferring context: 45B 0.0s=> CACHED [2/4] RUN mkdir /usr/local/ratel-boot-server 0.0s=> CACHED [3/4] WORKDIR /usr/local/ratel-boot-server 0.0s=> CACHED [4/4] COPY ratel-boot-server.jar ./ratel-boot-server.jar 0.0s=> exporting to image 0.0s=> => exporting layers 0.0s=> => writing image sha256:eebdebddf3f72373b23a1f291609613eb88b237e07dc8d6fbba810decfc3b14d 0.0s=> => naming to docker.io/library/ratel-boot-server:v1.0.0 0.0s
镜像运行
本地换或者开发环境 构建镜像
rbt1 和 rbt2 容器都起来来
[root@iZbp1dcnzq7pzpg9607m6pZ ~]# docker run --name rbt1 -p 20001:20001 --privileged=true --restart=always -idt ratel-boot-server:v1.0.0
6c9ed23572951d9127416802a6f5c484860ca30aa3f7132f22fb1b4b74c55e42
[root@iZbp1dcnzq7pzpg9607m6pZ ~]# docker run --name rbt2 -p 20002:20001 --privileged=true --restart=always -idt ratel-boot-server:v1.0.0
2a5b430255170b24da51fffc2e9345024de71094abf5d38ba55c3cc753774897
[root@iZbp1dcnzq7pzpg9607m6pZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a5b43025517 ratel-boot-server:v1.0.0 "java -java /ratel-b…" 5 seconds ago Restarting (1) Less than a second ago rbt2
6c9ed2357295 ratel-boot-server:v1.0.0 "java -java /ratel-b…" 15 seconds ago Restarting (1) 1 second ago rbt1
71235a26e5c6 ubuntu:18.04 "/bin/bash" 10 minutes ago Up 9 minutes verdant_hirquiticke
23d594db7e77 ubuntu:18.04 "/bin/bash" 55 minutes ago Up 44 minutes verdant_grommet
ba4ca0dcfcc8 ubuntu:18.04 "/bin/bash" 7 hours ago Up 7 hours zealous_quire
22afff419daf ubuntu:18.04 "/bin/bash" 8 hours ago Up 8 hours baleful_obelus
8d6f4a67a2f5 portainer/portainer-ce:latest "/portainer" 25 hours ago Up 8 hours 8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp portainer
[root@iZbp1dcnzq7pzpg9607m6pZ ~]#
镜像模板提交
提交镜像模板
[root@iZbp1dcnzq7pzpg9607m6pZ ~]# docker commit rbt1 template/ratel-boot-server:v1.0.0
sha256:a0e438bda894e99e79840b867f3677add07162b1e89ca8d7ec6a1fc1efca7674
[root@iZbp1dcnzq7pzpg9607m6pZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
template/ratel-boot-server v1.0.0 a0e438bda894 6 seconds ago 591MB
ratel-boot-server v1.0.0 eebdebddf3f7 7 hours ago 591MB
openjdk 8 e24ac15e052e 2 years ago 526MB
portainer/portainer-ce latest 0df02179156a 3 years ago 273MB
alpine latest c059bfaa849c 3 years ago 5.58MB
ubuntu 18.04 5a214d77f5d7 3 years ago 63.1MB
[root@iZbp1dcnzq7pzpg9607m6pZ ~]#
生成测试环境和生产环境镜像
[root@iZbp1dcnzq7pzpg9607m6pZ ~]# docker tag ratel-boot-server:v1.0.0 testhabor/testapp:v1.0.0
[root@iZbp1dcnzq7pzpg9607m6pZ ~]# docker tag ratel-boot-server:v1.0.0 prodhabor/prodapp:v1.0.0
ratel-boot-server v1.0.0 自己构建的
template/ratel-boot-server v1.0.0 提交的模板
testhabor/testapp v1.0.0 测试环境
prodhabor/prodapp v1.0.0 生产环境
[root@iZbp1dcnzq7pzpg9607m6pZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
template/ratel-boot-server v1.0.0 a0e438bda894 4 minutes ago 591MB
ratel-boot-server v1.0.0 eebdebddf3f7 7 hours ago 591MB
prodhabor/prodapp v1.0.0 eebdebddf3f7 7 hours ago 591MB
testhabor/testapp v1.0.0 eebdebddf3f7 7 hours ago 591MB
openjdk 8 e24ac15e052e 2 years ago 526MB
portainer/portainer-ce latest 0df02179156a 3 years ago 273MB
alpine latest c059bfaa849c 3 years ago 5.58MB
ubuntu 18.04 5a214d77f5d7 3 years ago 63.1MB
镜像模板 tag_ 推送测试环境 habor
:::color1
docker login 测试环境 habor
docker push testhaborr/ratel-boot-server:v1.0.0
:::
镜像模板 tag_ 推送生产环境 habor
镜像导出
:::color1
docker save -o ratelserver.tar ratel-boot-server:v1.0.0
:::
ratelserver.tar
REPOSITORY TAG IMAGE ID CREATED SIZE
template/ratel-boot-server v1.0.0 a0e438bda894 9 minutes ago 591MB
ratel-boot-server v1.0.0 eebdebddf3f7 7 hours ago 591MB
prodhabor/prodapp v1.0.0 eebdebddf3f7 7 hours ago 591MB
testhabor/testapp v1.0.0 eebdebddf3f7 7 hours ago 591MB
openjdk 8 e24ac15e052e 2 years ago 526MB
portainer/portainer-ce latest 0df02179156a 3 years ago 273MB
alpine latest c059bfaa849c 3 years ago 5.58MB
ubuntu 18.04 5a214d77f5d7 3 years ago 63.1MB
[root@iZbp1dcnzq7pzpg9607m6pZ ~]# ls
Dockerfile ratel-boot-server.jar ratelserver.tar sa_recovery.log
[root@iZbp1dcnzq7pzpg9607m6pZ ~]#
相关文章:
docker springboot 运维部署详细实例
环境安装 [rootiZbp1dcnzq7pzpg9607m6pZ ~]# docker -v Docker version 26.1.4, build 5650f9b镜像构建 Dockerfile 文件内容 FROM openjdk:8 # Author Info 创建人信息 MAINTAINER ratelcloudfoxmail.com ENV PORT20001 EXPOSE 20001 RUN mkdir /usr/local/ratel-boot-serv…...
Linux 查看目录命令 ls 详细介绍
Linux 和 Unix 系统中 ls 命令是用于列出目录内容。用户可以查看指定目录下的文件和子目录,还可以获取有关这些文件和子目录的详细信息。 基本语法: ls [选项] [目录]如果不指定目录,ls 将列出当前工作目录下的内容。 01、-a 或 --all ls…...
React Native状态管理器Redux、MobX、Context API、useState
Redux、MobX、Context API、useState都是React中用于状态管理的工具,但它们各自有不同的特点和使用场景。 Redux 介绍: Redux是一个JavaScript状态管理库,最初由Dan Abramov和Andrew Clark于2015年开发。它基于Flux架构,强调状态…...

Three.js资源-模型下载网站
在使用 Three.js 进行 3D 开发时,拥有丰富的模型资源库可以大大提升开发效率和作品质量。以下是一些推荐的 Three.js 模型下载网站,它们提供了各种类型的 3D 模型,适合不同项目需求。无论你是需要逼真的建筑模型,还是简单的几何体…...
linux 添加默认网关
在linux 可以使用 route 命令添加默认网关,假设添加的默认网关是192.168.159.2 添加方式如下: route add default gw 192.168.159.2 以上命令只需要把add 改成 del ,就能删除刚才添加的路由 route del default gw 192.168.159.2 #该命…...
【学习笔记】深入浅出详解Pytorch中的View, reshape, unfold,flatten等方法。
文章目录 一、写在前面二、Reshape(一)用法(二)代码展示 三、Unfold(一)torch.unfold 的基本概念(二)torch.unfold 的工作原理(三) 示例代码(四&a…...

CTFHUB-web(SSRF)
内网访问 点击进入环境,输入 http://127.0.0.1/flag.php 伪协议读取文件 /?urlfile:///var/www/html/flag.php 右击查看页面源代码 端口扫描 1.根据题目提示我们知道端口号在8000-9000之间,使用bp抓包并进行爆破 POST请求 点击环境,访问flag.php 查看页…...
分解质因数
给定 n个正整数 ,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。 输入格式 第一行包含整数 n 接下来 n行,每行包含一个正整数 。 输出格式 对于每个正整数 ,按照从小到大的顺序输出其分解质因数后&…...
前景物体提取
参考:精选课:C完整的实现双目摄像头图像采集、双目摄像头畸变矫正、前景物体提取、生成视差图、深度图、PCL点云图 前景物体提取是计算机视觉中的一个重要技术,可以用于视频监控、虚拟现实和计算机视觉等领域。 1.前景物体提取的原理 前景…...

Kotlin复习
一、Kotlin类型 1.整数 2.浮点 显示转换: 所有数字类型都支持转换为其他类型,但是转换前会检测长度。 toByte(): Byte toShort(): Short toInt(): Int toLong(): Long toFloat(): Float toDouble(): Double 不同进制的数字表示方法(为了提高…...

【AI日记】24.12.17 kaggle 比赛 2-6 | 把做饭看成一种游戏 | 咖喱牛肉
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 参加:kaggle 比赛 Regression with an Insurance Dataset时间:9 小时睡得好很重要 读书 书名:富兰克林自传时间:0.5 小时阅读原因:100 美元纸…...

操作系统(14)请求分页
前言 操作系统中的请求分页,也称为页式虚拟存储管理,是建立在基本分页基础上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能的一种内存管理技术。 一、基本概念 分页:将进程的逻辑地址空间分成若干个大小相等的页&am…...
uniapp navigateTo、redirectTo、reLaunch等页面路由跳转方法的区别
uni.switchTab 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 // app.json {"tabBar": {"list": [{"pagePath": "index","text": "首页"},{"pagePath": "other","text&…...

模型 A/B测试(科学验证)
系列文章 分享 模型,了解更多👉 模型_思维模型目录。控制变量法。 1 A/B测试的应用 1.1 Electronic Arts(EA)《模拟城市》5游戏网站A/B测试 定义目标: Electronic Arts(EA)在发布新版《模拟城…...

谷歌发布升级版AI视频生成器Veo 2与图像生成器Imagen 3
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

快速掌握源码部署Filebeat
文章目录 1. 裸金属安装1.1 压缩包方式安装1.2 yum方式安装 2. docker安装3. K8s安装 项目使用了Filebeat,现在需要运行在ARM架构的服务器上,但是Filebeat官方没有提供,需要自己编译一份 filebeat等组件的源码地址 https://github.com/elasti…...

C++ 哈希表封装unordered_map 和 unordered_set
1.源码框架 SGI-STL30版本源代码中没有unordered_map和unordered_set,SGI-STL30版本是C11之前的STL 版本,这两个容器是C11之后才更新的。但是SGI-STL30实现了哈希表,只容器的名字是hash_map 和hash_set,他是作为⾮标准的容器出现…...
pymysql 入门
发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 1. 什么是 PyMySQL? PyMySQL 是一个纯 Python 编写的 MySQL 客户端库,可以通过它轻松地在 Python 中连…...

Leecode刷题C++之形成目标字符串需要的最少字符串数①
执行结果:通过 执行用时和内存消耗如下: 代码如下: class Solution { public:int minValidStrings(vector<string>& words, string target) {auto prefix_function [](const string& word, const string& target) -> vector<…...

Linux应用开发————mysql数据库
数据库概述 什么是数据库(database)? 数据库是一种数据管理的管理软件,它的作用是为了有效管理数据,形成一个尽可能无几余的数据集合,并能提供接口,方便用户使用。 数据库能用来干什么? 顾名思义,仓库就是用来保存东…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...