首页 > 其他分享 >使用docker部署项目

使用docker部署项目

时间:2024-06-01 19:29:52浏览次数:25  
标签:javadome 项目 部署 jar registry 镜像 docker 打包

一、docker私有镜像仓库

1、docker私有镜像仓库

库(Repository)是集中存放镜像的地方,又分为公共镜像和私有仓库。

当我们执行docker pull xxx的时候,它实际上是从registry.docker.com这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目上传到公共仓库进行管理,所以为了更多管理镜像,Docker允许我们搭建本地私有仓库。

私有仓库最常用的就是registry、Harbor两种,那接下来详细介绍如何搭建私有仓库。Docker 官方提供了一个搭建私有仓库的镜像registry,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。

registry服务默认将上传的镜像保存在容器的/var/lib/registry,使用-v参数将容器的/var/lib/registry目录映射到本地/opt/registry目录。即可实现将镜像保存到宿主机/opt/registry目录。

2、使用docker部署私有镜像仓库registry

docker pull registry

3、启动私有镜像仓库

docker run -d -p 5000:5000 --name registry registry

二、项目打包

1、maven添加打包插件

<build>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring-boot.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2、maven视图:

3、功能说明:

build-info:生成项目的构建信息文件 build-info.properties

repackage:这个是默认 goal,在 mvn package 执行之后,这个命令再次打包生成可执行的 jar,同时将 mvn package 生成的 jar 重命名为 *.origin

run:这个可以用来运行 Spring Boot 应用

start:这个在 mvn integration-test 阶段,进行 Spring Boot 应用生命周期的管理

stop:这个在 mvn integration-test 阶段,进行 Spring Boot 应用生命周期的管理

4、打包项目

执行打包插件的run方法,打包项目

打包生成的jar包在项目文件的target文件夹里,我们需要将打包完成的jar包copy到linux服务器里面

三、项目部署

1、编写Dockerfile文件文件

//在jar包同级目录下添加Dockerfile文件
vim Dockerfile

//将下列配置拷贝进Dockerfile
FROM java:8u20
MAINTAINER docker_maven [email protected]
WORKDIR /ROOT
ADD javadome-0.0.1-SNAPSHOT.jar javadome.jar
CMD ["java", "-version"]
ENTRYPOINT ["java", "-Dfile.encoding=utf-8","-jar", "javadome.jar"]
EXPOSE 63075

FORM java:8u20是指编译的jdk,如果使用的是openjdk也可以改成openjdk:17

javadome-0.0.1-SNAPSHOT.jar 是同级目录下的jar包的全名

javadome.jar 对jar包起的别名

EXPOSE 63075 指打包程序的端口号,一般与项目指定的端口号一致

2、创建docker镜像

docker build -t javadome:1.0 .

javadome:1.0 指打包项目的镜像名及版本号(可以自己指定),后面有个 . 不能掉

3、查看镜像是否已存在

docker images

4、创建docker容器(部署)

docker run --name javadome -p 63075:63075 -idt javadome:1.0

5、查看容器是否创建成功

dokcer ps

四、测试

修改前端项目的请求地址为服务器地址,放行服务器相关端口,测试功能是否可以实现

标签:javadome,项目,部署,jar,registry,镜像,docker,打包
From: https://blog.csdn.net/qh1112/article/details/139286440

相关文章

  • 发布到win11本地k8s集群Aspire项目
    Aspire项目发布到win11本地k8s集群 合集-微服务(3) 1.微服务新体验之Aspire初体验05-302.Aspire项目发布到win11本地k8s集群05-313.微服务实践Aspire项目发布到远程k8s集群06-01收起 前提你必须会创建aspire项目,不会的请先看微服务新体验之Aspire初体验As......
  • 【技术突破】优秘数字人独立部署源码功能进化
    随着数字人直播系统的兴起,越来越多的人对数字人直播系统源码(源码:ai6ai69)搭建感兴趣。数字人直播系统源码在一些市场上是可以找到的,但是鱼目混杂、五花八门想要找一个合适自己的就需要一定技巧,要选择一个技术专业的AI数字人直播系统源码服务商是很关键的,关系到成败。优秘数字......
  • 轻松学AI:数字人系统源码部署简易教程“
    随着短视频领域的迅猛发展,数字化概念已经成为我们生活中不可或缺的一部分。在数字化的大潮中,数字人源码部署(源码部署:ai6ai69)成为了一个热门的商业风口项目。很多企业和个人创业者开始关注并探索如何选择适合自己的数字人源码部署方案。在选择数字人系统源码厂家时,我们需要明......
  • 解决源码部署难题:如何定位数字人系统的源头厂商“
    解决源码部署难题:如何定位数字人系统的源头厂商随着短视频领域的爆发,AI人工智能也开始慢慢向这个行业渗透,在这个大背景下,数字人源码部署成为了创业者中热门的话题。面对市场上众多的数字人源码厂家,如何选择一个值得信赖、技术实力过硬的企业成为了很多人的难题。今天,小编就咨......
  • Aspire项目发布到远程k8s集群
    前提你必须会创建aspire项目,不会的请先看微服务新体验之Aspire初体验Aspirate(Aspir8)Aspirate是将aspire项目发布到k8s集群的工具安装aspiratedotnettoolinstall-gaspirateaspirate初始化切换到AppHost项目目录aspirateinit在host项目中生成aspirate.json,如......
  • 宝塔Linux面板-Docker管理(2024详解)
    上一篇文章《宝塔Linux可视化运维面板-详细教程2024》,详细介绍了宝塔Linux面板的详细安装和配置方法。本文详细介绍使用Linux面板管理服务器Docker环境。目录1、安装Docker1.1在线安装​编辑 1.2手动安装1.3运行状态1.4镜像加速2应用商店 3总览 4容器4.1......
  • Docker安装Jenkins详解
    目录Docker安装Jenkins1.下载Jenkins2、创建挂载目录3、启动Jenkins容器4、验证Jenkins容器是否启动成功5、获取管理员密码6、修改插件源7、登录web页面8、插件推荐Docker安装Jenkins话不多说,下面直接开始1.下载Jenkins使用下面命令,让docker拉取镜像,dockerpulljenkins/jenkins......
  • SpringBoot 中获取项目的路径和文件流
    SSMweb项目以工程名为TEST为例:(1)得到包含工程名的当前页面全路径:request.getRequestURI()结果:/TEST/test.jsp(2)得到工程名:request.getContextPath()结果:/TEST(3)得到当前页面所在目录下全名称:request.getServletPath()结果:如果页面在jsp目录下/TEST/jsp/test.jsp......
  • 基于springboot校园医疗保险管理系统(源码+lw+部署文档+讲解等)
    前言......
  • C#WPF数字大屏项目实战06--报警信息
    1、ItemsControl简介 ItemsControl是用来表示一些条目集合的控件,所以它叫条目控件,它的成员是一些其它控件的集合,其继承关系如下:     其常用的派生控件为:ListBox、ListView、ComboBox,为ItemsControl的具体实现。   ItemsControl的成员条目可以为不同的类型,如自......