Docker:SpringBoot项目创建Docker镜像并推送到阿里云容器镜像仓库

news2024/11/16 3:49:33

0. 准备工作

        os:macos  15.0  

        jdk:1.8

        docker:26.0.0

1. 阿里云容器镜像服务创建实例

创建个人版


 个人实例创建成功

 个人镜像加速器地址

2. 安装Docker Desktop

Docker Desktop是Docker的一个集成工具,非必须,过程略。

打开Docker Engine,在registry-mirros中添加阿里云的个人镜像加速器地址
(没有安装Docker Desktop的可使用命令行添加)

3. 新建SpringBoot项目

新建接口"/hello"(测试用,根据实际情况而定)
端口8889(测试用,根据实际情况而定)
pom.xml中指定Main-Class(会打包到jar文件中,通过命令启动服务时需要)
maven package命令打jar包
项目根目录下新建Dockerfile文件(构建镜像必须,Dockerfile相关自行了解)

测试一下

特别说明:

当根据Dockerfile构建镜像时,Docker会根据FROM指令来确定基础镜像,如果本地不存在该基础镜像则会自动拉取到本地,如果拉取失败则会导致构建镜像失败。
以下镜像地址来自亚马逊镜像仓库,自行选择版本(基础镜像仓库也可自行选择)。

# 使用官方的Java运行时环境作为基础镜像
FROM public.ecr.aws/amazoncorretto/amazoncorretto:8u412

 设置工作目录为/app,将target下的jar包复制到工作目录下。(目录和jar包名根据实际情况而定)

# 设置工作目录
WORKDIR /app

# 将项目的jar文件复制到容器中
COPY target/hello-world-1.0.0.jar /app/hello-world-1.0.0.jar

创建容器时执行命令去启动服务

# 运行应用程序
ENTRYPOINT ["java", "-jar", "/app/hello-world-1.0.0.jar"]

4. 构建镜像

4.1 在阿里云创建镜像仓库

获取访问凭证,设置固定密码

新建命名空间

创建镜像仓库

选择刚刚创建的命名空间,输入仓库名称和摘要

进入刚创建的镜像仓库,可以看到仓库的基本信息和一些命令

4.2 构建镜像

构建镜像(spacexxxxxx是上面创建的命名空间,1.0.0是版本号)

sudo docker build -t spacexxxxxx/hello-world:1.0.0 . 

构建镜像成功以后,打开Docker Desktop就可以看到
(没有安装Docker Desktop的通过命令执行,命令自行查询)

4.3 创建容器

(没有安装Docker Desktop的通过命令执行,命令自行查询)

容器创建成功,服务启动

测试一下

4.4 推送镜像到阿里云

登录阿里云账号

docker login --username=username registry.cn-shanghai.aliyuncs.com

镜像推送到镜像仓库

docker tag hello-world:1.0.0 registry.cn-shanghai.aliyuncs.com/spacexxxxxx/hello-world:1.0.0
docker push registry.cn-shanghai.aliyuncs.com/spacexxxxxx/hello-world:1.0.0


镜像已推送到阿里云容器镜像仓库

 

从仓库中拉取镜像到本地

docker pull registry.cn-shanghai.aliyuncs.com/spacexxxxxx/hello-world:1.0.0 


以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2142447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

指纹与指甲检测系统源码分享

指纹与指甲检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

这个时代唯一“不变“的又是{变}

这个时代唯一不变的就是“变”,所以每个人都得有规划意识,首先要对自己的价值有清晰的认知,你核心卖点是什么。第二,你取得的成绩是通过平台成就的还是通过自身努力取得的,很多人在一家平台待久了之后,身上…

在Unity UI中实现UILineRenderer组件绘制线条

背景介绍 在Unity的UI系统中,绘制线条并不像在3D世界中那样直观(使用Unity自带的LineRender组件在UI中连线并不方便,它在三维中更合适)。没有内置的工具来处理这种需求。如果你希望在UI元素之间绘制连接线(例如在UI上连接不同的图标或控件)&a…

26. 构建一个矩形平面几何体

定义矩形几何体顶点坐标 一个矩形平面,可以至少通过两个三角形拼接而成。而且两个三角形有两个顶点的坐标是重合的。 注意三角形的正反面问题:保证矩形平面两个三角形的正面是一样的,也就是从一个方向观察,两个三角形都是逆时针…

Docker 消息队列RabbitMQ 安装延迟消息插件

介绍 RabbitMQ的官方推出了一个插件,原生支持延迟消息功能。该插件的原理是设计了一种支持延迟消息功能的交换机。当消息投递到交换机后可以暂存一定时间,到期后再投递到队列。 查看版本号 docker exec rabbit名字 rabbitmqctl version根据版本下载 插…

neo4j(spring) 使用示例

文章目录 前言一、neo4j是什么二、开始编码1. yml 配置2. crud 测试3. node relation 与java中对象的关系4. 编码测试 总结 前言 图数据库先驱者 neo4j:neo4j官网地址 可以选择桌面版安装等多种方式,我这里采用的是docker安装 直接执行docker安装命令: docker run…

一键更换软件源的工具——chsrc

前言 经常用pip,ubuntu的apt,或者centos的yum等包下载工具的人不可避免的一件事就是——“更换软件源”,因为以上三个包下载工具的软件源一般都是默认为国外的官方网站,由于国情问题,下载速度就会非常慢,所…

华为OD机试 - 最大矩阵和 - 卡德恩算法(动态规划)(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

线性代数(宋浩版)(4)

2.4逆矩阵 (不要把矩阵放在分母上) 方阵的行列式 性质1 性质2 性质3 伴随矩阵(只有方阵才有) 1.求出所有元素的代数余子式(矩阵先求行列式)。 2.按行求的代数余子式按列放。 定理1(重要&…

MySQL篇(窗口函数/公用表达式(CTE))

目录 讲解一:窗口函数 一、简介 二、常见操作 1. sumgroup by常规的聚合函数操作 2. sum窗口函数的聚合操作 三、基本语法 1. Function(arg1,..., argn) 1.1. 聚合函数 sum函数:求和 min函数 :最小值 1.2. 排序函数 1.3. 跨行函数…

ECMAScript与JavaScript的区别

目录 一、什么是ECMAScript? 二、什么是JavaScript? 三、ECMAScript与JavaScript的关系 3.1 ECMAScript规范版本 3.2 JavaScript的实现 四、ECMAScript与JavaScript的主要区别 4.1 规范与实现的区别 4.2 版本更新 4.3 环境支持 4.4 语言特性 五…

C# 使用Socket通信,新建WinForm服务端、客户端程序

一、新建WinForm Socket服务端程序 注:rtbReceviceMsg为RichTextBox控件 服务端程序、界面 服务端代码 public partial class Form1 : Form {public Form1(){InitializeComponent();}public virtual void TriggerOnUpdateUI(string message){if (this.InvokeRequir…

【SpringCloud】服务注册与发现 - Eureka

目录 服务注册/服务发现-Eureka背景问题描述解决思路什么是注册中心CAP 理论常见的注册中心 Eureka 介绍搭建Eureka Server创建Eureka-server 子模块引入eureka-server依赖项目构建插件完善启动类编写配置文件启动服务 服务注册引入eureka-client依赖完善配置文件启动服务 服务…

如图,从左到右在每个小格子中填入一个整数,使得其中任意三个相邻格子中所填整数之和都相等,若前m个格子中所填整数之和是2024,则m的值为?

1、如果图: 任务三个相邻的格子中所填整数之和都相等,则可以列个几个式子: 9ab abcbc(-5)c(-5)1 则可以求出: a-5,b1,c9 2、前m个格子中所填数之和是2024,则表示9abc(-5)1...第m个格子2024 …

LaTex2024 下载安装运行HelloWorld—全流程笔记

LaTex安装教程🚀 这是读博之后写的第一篇文章,来到新课题组之后,新课题组主要是用Latex,在之前的课题组,还是比较常用world,所以就研究了一下Latex的下载和安装,虽然网上已经有了不少教程&#…

编程基础:函数栈帧的创建和销毁

函数栈帧的创建和销毁 一、什么是函数栈帧二、常见的寄存器三、函数指令三、函数栈帧的创建和销毁(一)普通值传递1、开始执行函数2、main函数的函数栈帧的开辟(1)main 栈帧空间的开辟和默认初始化(2)main 局…

S-Procedure的基本形式及使用

理论 Lemma 1. ( S- Procedure[ 34] ) : Define the quadratic func- \textbf{Lemma 1. ( S- Procedure[ 34] ) : Define the quadratic func- } Lemma 1. ( S- Procedure[ 34] ) : Define the quadratic func- tions w.r.t. x ∈ C M 1 \mathbf{x}\in\mathbb{C}^M\times1 x…

Leetcode—815. 公交路线【困难】(unordered_map+queue)

2024每日刷题&#xff08;163&#xff09; Leetcode—815. 公交路线 bfs实现代码 class Solution { public:int numBusesToDestination(vector<vector<int>>& routes, int source, int target) {if(source target) {return 0;}unordered_map<int, vector…

如何用安卓玩Java版Minecraft,安卓手机安装我的世界Java版游戏的教程

安卓手机使用FCL启动器安装我的世界Java版游戏的教程。如何用安卓玩Java版Minecraft 视频教程&#xff1a;https://www.bilibili.com/video/BV1CctYebEzR/ 前言 目前&#xff0c;安卓设备上可以用来运行Java版Minecraft的启动器主要有以下几款&#xff1a; PojavLauncher&a…

Matlab-Matpower制作IEEE14-电力虚假数据注入攻击FDIA数据集

文章目录 1. 加载Matpower-IEEE14电力数据2. 导入原始数据集两个数据集结合的意义潮流分析和状态估计的意义 3. 初始化变量4. 分离有功和无功功率4. 潮流计算5. 生成测量向量6. 选择是否篡改数据7. 状态估计和雅可比矩阵8. 保存未篡改数据9. 篡改数据生成FDIA仿真数据集完整代码…