本地微服务进行docker镜像打包发布的流程

简介: 本地微服务进行docker镜像打包发布的流程

公众号merlinsea


代码编写好了以后镜像发布流程:


1、先在本地进行镜像打包 【前提需要在自己本地安装docker环境,不同的系统不一样,即可以百度如何在自己电脑上安装docker环境】

2、将打包好的镜像推送到私有镜像仓库

640.jpg

第一步:在本地将微服务打包成镜像


1.1 pom文件中引入打包插件

<properties>
    <docker.image.prefix>xdclass-cloud</docker.image.prefix>
</properties>
<build>
    <!--项目打包以后的文件名-->
    <finalName>alibaba-cloud-gateway</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
                <addResources>true</addResources>
            </configuration>
        </plugin>
        <plugin>
            <!--spotify是springboot打包成docker的一个插件-->
            <groupId>com.spotify</groupId>
            <artifactId>dockerfile-maven-plugin</artifactId>
            <version>1.4.10</version>
            <configuration>
                <repository>${docker.image.prefix}/${project.artifactId}</repository>
                <buildArgs>
                    <!--在mvn install以后在target目录下的jar文件-->
                    <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                </buildArgs>
            </configuration>
        </plugin>
    </plugins>
</build>


1.2编写Dockerfile脚本文件【在项目根目录下】

FROM  adoptopenjdk/openjdk11:ubi
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar   
ENTRYPOINT ["java","-jar","/app.jar"]
-----------------------参数介绍---------------------
FROM 是基础镜像,本例是基于jdk11进行的基础公共镜像进行构建,还可以添加多个FROM,比如添加redis,mysql等等
ARG 设置编译镜像时加⼊的参数, JAR_FILE 是设置容器的环境变量(maven⾥⾯配置的)
COPY : 只⽀持将本地⽂件复制到容器,将本地的jar包复杂到容器中并命名为app.jar
ENTRYPOINT:启动容器时执行的命令,即启动容器就好运行这个jar

640.jpg


第二步:构建镜像


在项目根目录下执行
mvn install -Dmaven.test.skip=true dockerfile:build


第三步:推送镜像【可以进入到阿里云镜像仓库网址中,里面有教程】

【推送的前提是需要在自己的阿里云服务器上构建自己的私有镜像仓库,文章结尾会介绍】


#登陆自己的镜像仓库【之前在构建镜像仓库的时候配置了固定密码】
docker login --username=lianglin registry.cn-hangzhou.aliyuncs.com
#根据镜像id打标签
docker tag  509610f4b694 registry.cn-hangzhou.aliyuncs.com/lianglin-test/spring-alibaba-cloud-gateway:v1
#把本地镜像推送到私有仓库中
docker push registry.cn-hangzhou.aliyuncs.com/lianglin-test/spring-alibaba-cloud-gateway:v1


进入自己在阿里云创建的镜像仓库中,就会有教程示范

640.jpg


  • 在阿里云上构建自己的镜像仓库

1、登陆自己的阿里云账号进入【容器镜像服务】

640.jpg


2、设置访问凭证的固定密码【后期本地登陆镜像仓库需要使用】

640.jpg


3、创建仓库【注意仓库是位于哪个地区的】


640.jpg


VIP永久直播课程算法班

原价是800元/人,现在只需要650元/人

直播时间是周一、周三、周五上午8:30-9:30,周六周日10:30-11:30

快来参加吧,参加方式加我微信公众号merlinssea即可报名参加。报名参加还会赠送800+ppt的开发项目相关的文档资料。


算法直播训练营vip班,永久算法刷题班,现在只需要650元/人。快来参加吧~

奔跑的小梁,公众号:梁霖编程工具库算法训练营快来参加吧~


相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1769 10
|
3月前
|
JavaScript Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
391 100
|
3月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
319 99
|
3月前
|
缓存 Docker 容器
优化Docker镜像大小的五个实用技巧
优化Docker镜像大小的五个实用技巧
347 98
|
3月前
|
安全 Go Docker
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
526 5
|
2月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
2178 8
|
3月前
|
Java Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
214 8
|
4月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
324 16
|
4月前
|
Ubuntu 网络安全 PHP
如何使用vscode的Docker插件管理ubuntu 拉取服务器的镜像以及创建容器
本测试镜像旨在记录使用vscode的Docker插件拉取病创建Dockerfile,以及拉取镜像。