基于docker环境及Harbor部署{很简短一点了,耐心看吧}

news2024/11/27 15:54:20

用到的环境:

docker 、nacos、compose、harbor(自行安装 ,以下连接作为参考)

nacos:史上最全整合nacos单机模式整合哈哈哈哈哈_nacos 源码启动 单机模式-CSDN博客

docker、compose、harbor:史上最全的整合Harbor安装教程,哈哈哈哈_harbor 安装-CSDN博客

1.在maven的settings.xml文件中配置harbor服务的账号信息:

<server>
    <id>harbor</id>
    <username>admin</username>
    <password>Harbor12345</password>
    <configuration>
        <email>123456@aliyun.com</email>
    </configuration>
</server>

2.pom.xml文件添加docker插件

插件原理:就是在docker主机上构建docker对应的镜像,然后将构建的镜像推送到harbor远程仓库中。

<properties>
    <docker.repostory>192.168.X.XXX:端口号</docker.repostory>
    <docker.registry.name>自己起个名字(spx)</docker.registry.name>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.2.2</version>

            <!--将插件绑定在某个phase执行-->
            <executions>
                <execution>
                    <id>build-image</id>
                    <!--将插件绑定在package这个phase(阶段)上。也就是说,用户只需执行mvn package,就会自动执行mvn docker:build-->
                    <phase>package</phase>
                    <goals>
                        <goal>build</goal>
                        <goal>push</goal>
                    </goals>
                </execution>
            </executions>

            <configuration>

                <serverId>harbor</serverId>
                <registryUrl>http://${docker.repostory}</registryUrl>
                <dockerHost>http://192.168.X.XXX:2375</dockerHost>  <!-- 配置docker主机地址 -->

                <!--指定生成的镜像名-->
            <imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}</imageName>

                <!-- 指定 dockerfile 路径-->
                <dockerDirectory>${project.basedir}</dockerDirectory>

                <!-- 是否跳过docker构建 -->
                <skipDockerBuild>false</skipDockerBuild>

            </configuration>

        </plugin>
    </plugins>
</build>

docker服务端开启远程访问、

3.#修改该文件

vim /lib/systemd/system/docker.service

#找到ExecStart行,修改成如下内容

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock

#重启守护进程

systemctl daemon-reload	

#重启docker

systemctl restart docker

注意:关闭防火墙[]

systemctl stop firewalld.service

编写dockerfile文件

  • Dockerfile文件的位置必须是和pom.xml处于同一个目录

  • FROM centos7-jdk17
    MAINTAINER atggu(随意)
    EXPOSE 8088(端口号写自己的)
    ADD target/service-user-1.0-SNAPSHOT.jar /service-user-1.0-SNAPSHOT.jar
    
    WORKDIR /
    ENTRYPOINT ["java" , "-jar" , "service-user-1.0-SNAPSHOT.jar"]

4.使用dockerfile来构建一个包含Jdk17的centos7镜像(前提下载好JDK17在这里就不说了,自己自行下载)

分析:

1)、基础的镜像的应该选择centos:7

2)、在自己所构建的镜像中需要包含Jdk17,就需要把Jdk17添加到centos:7的基础镜像中

3)、为了方便的去使用自己构建的镜像中的Jdk17,就需要去配置环境变量

4)、因为Jdk17仅仅是一个开发工具,并不是一个服务进程,因此在启动容器的时候可以不指定任何的执行命令

实现步骤:(具体执行结果不展示了,按步骤走就对了,如果自己的环境有什么问题,操作过程遇到问题,随时度~~)

1)、将Jdk17的安装包上传到linux服务器的指定目录下

2)、在Jdk17所在的目录下创建一个dockerfile文件

3)、使用docker build命令构建镜像

4)、使用docker images查看镜像构建情况

# 1、创建目录
mkdir –p /usr/local/dockerfilejdk17
cd /usr/local/dockerfilejdk17
  
# 2、下载jdk-17_linux-x64_bin.tar.gz并上传到服务器(虚拟机)中的/usr/local/dockerfilejdk17目录
# 3、在/usr/local/dockerfilejdk17目录下创建dockerfile文件,文件内容如下:
vim dockerfile

FROM centos:7
MAINTAINER atguigu
RUN mkdir -p /usr/local/java
ADD jdk-17_linux-x64_bin.tar.gz /usr/local/java/
ENV JAVA_HOME=/usr/local/java/jdk-17.0.7
ENV PATH=$PATH:$JAVA_HOME/bin

# 4、执行命令构建镜像;不要忘了后面的那个 .
docker build -t centos7-jdk17 .

# 5、查看镜像是否建立完成
docker images

执行maven的打包命令(各种环境配置好后去执行打包)

将application-dev.yml文件中的内容复制到nacos的service-user-dev.yml配置中:

server:
  port: 8088

spring:
  application:
    name: service-user
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.X.XXX:8848
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.X.XXX:3306/db_spzx?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=true
    username: root
    password: 1234
  data:
    redis:
      host: 192.168.X.XXX
      port: 6379

mybatis:
  config-location: classpath:mybatis-config.xml
  mapper-locations: classpath:mapper/*/*.xml

修改IDEA中要推送的项目中的application.yml文件的内容如下所示:

spring:
  cloud:
    nacos:
      config:
        server-addr: 192.168.X.XXX:8848
  config:
    import:
      - nacos:service-user-dev.yml     #(NACOS中的Data Id)

一切就绪准备打包推送

5.在父工程目录下面执行命令(如下我就去D://gitSoure/spzx-parent中cmd打开)

mvn clean package -DskipTests								# 打包跳过测试
mvn clean package -DskipTests -DskipdockerBuild				# 打包跳过测试的同时提高构建

来看

完美结束!

当然还可以命令用docker推送:

先尝试用docker登录Harbor 提示成功,再去执行命令(登录过程中如遇失败,度娘去查,一般是Harbor自身环境配置有问题)

推送成功 !会一种就可以,下边的就不详细些了,估计大家也看累了,辛苦了

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

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

相关文章

Java 并发集合:CopyOnWrite 写时复制集合介绍

大家好&#xff0c;我是栗筝i&#xff0c;这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 016 篇文章&#xff0c;在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验&#xff0c;并希望进…

openssl交叉编译-移植ARM

OpenSSL是一个开源的密码学工具包&#xff0c;提供了一组用于网络安全的加密和解密算法、协议以及相关工具的库&#xff0c;它通过提供多种加密算法、协议和工具&#xff0c;为网络通信和数据存储提供了强大的安全保障。 主要功能 加密和解密&#xff1a; OpenSSL提供了多种对…

数据异常不用怕,GaiaDB有办法

百度智能云云数据库&#xff0c;开启了特惠专场&#xff01;热销规格新用户免费使用&#xff0c;欢迎参与&#xff01; 背景 在大多数业务场景中&#xff0c;数据库主要负责提供对当前数据的查询能力。然而&#xff0c;对于一些特定业务场景&#xff0c;如游戏运营和金融交易…

[层次分析法+模糊综合分析] 基于matlab的XX公司发展情况的综合评价

一 背景介绍 本文分析了一个使用层次分析法&#xff08;AHP)和模糊综合评价对XX公司的发展现状进行评价&#xff0c;得到了整体的评价结果。主要包含&#xff1a; 专家打分-一致性分析-权重计算-问卷调查-评价矩阵-隶属度矩阵-最终评价结果等内容 二 评价体系的建立 根据XX公司…

亿发:信息化建设or面子工程?究竟什么才是真正的信息化解决方案

在现代企业的竞争中&#xff0c;信息化建设扮演着越来越重要的角色。信息化技术不仅是企业提升管理效率、优化运营模式的利器&#xff0c;更是企业在市场竞争中脱颖而出的关键。然而&#xff0c;许多企业在推进信息化的过程中&#xff0c;往往容易陷入“面子工程”的误区。那么…

mysql8 导入导出工具类,支持windows 和linux

概述 1&#xff09;导入导出工具类 支持windows 和linux&#xff0c;详见第3部分 2&#xff09;导入、导出参数在 dbeaver 中应用&#xff0c;详见第4部分 整理原因: 1&#xff09;中文乱码 --default-character-setutf8 2&#xff09;BLOB 导出后&#xff0c;导入失败 --he…

利用git将Qt代码托管到U盘或者网盘

文章目录 1.前言2.解决方案3.操作步骤3.1.软件安装3.2.在U盘创建裸仓库3.3.创建Qt程序并将代码上传至U盘3.4.版本标记及切换3.4.在别的电脑上clone代码出来 4.其他5.结语 1.前言 我们在开发项目时&#xff0c;随着项目需求的增加以及bug的修复&#xff0c;肯定会涉及到版本管理…

2024年中国安防CIS市场现状及主要竞争企业分析

2024年中国安防CIS市场现状及主要竞争企业分析 CIS又名CMOS图像传感器&#xff0c;属于一种光学传感器&#xff0c;将光信号转换为电信号并通过读出电路转为数字化信号&#xff0c;是摄像头模组的核心元器件&#xff0c;可以用于手机、汽车、电脑、安防、消费等领域。不同应用领…

Pyqt5中的按钮在播放后出现大小变化应该怎么做

有的时候开发的Pyqt5程序总是会在预览后发现按钮的大小和设计的不一样大&#xff0c;主要原因就是因为按钮的“水平策略”和“垂直策略”的设置导致的&#xff0c;具体如下&#xff1a; 设置为fixed&#xff0c;就是固定的&#xff0c;不要设置为其他的。 fixed的功能如下 部…

短信验证码实现

一、设置AccessKey 创建用户并配置使用权限&#xff0c;使我们拥有调用 aliyunAPI 的权限&#xff0c;之后会生成 AccessKeyID 和 AccessKey密码&#xff0c;后面我们会使用到。需要注意的是 AccessKeyID 和 AccessKey密码生成后我们需要将他保存起来&#xff0c;否则后期无法查…

网站UI:我只负责漂亮,实现的事情交给前端开发。

网页UI的美观性对于用户体验和网站的成功至关重要&#xff0c;以下是几个原因&#xff1a; 吸引用户&#xff1a;美观的网页UI可以吸引用户的注意力&#xff0c;使用户对网站产生兴趣并留下深刻印象。用户更有可能在美观的界面上停留更长时间&#xff0c;探索网站的功能和内容…

默安逐日实验室:XDP的应用实践

1. 网络数据包是如何进入进计算机的 众所周知&#xff0c;网络数据包通常需要在TCP/IP协议栈中进行处理&#xff0c;但网络数据包并不直接进入TCP/IP协议栈&#xff1b;相反&#xff0c;他们直接进入网络接口。因此&#xff0c;在数据包进入 TCP/IP 堆栈之前&#xff0c;它们已…

【计算智能】遗传算法(二):基本遗传算法在优化问题中的应用【实验】

前言 本系列文章架构概览&#xff1a; 本文将介绍基本遗传算法在解决优化问题中的应用,通过实验展示其基本原理和实现过程&#xff1a;选取一个简单的二次函数作为优化目标&#xff0c;并利用基本遗传算法寻找其在指定范围内的最大值。 2. 基本遗传算法&#xff08;SGA&#x…

柯桥小语种学校成人生活口语学习|西班牙语中H为什么不发音…

01 H en el alfabeto espaol 西语字母表中的h 字母H是唯一一个在标准西班牙语中不再代表任何音素的字母。尽管在它单独出现时被叫做HACHE&#xff0c;但在大多数单词拼写中&#xff0c;它只是一个没有声音对应关系的字母&#xff0c;因此RAE称其为“无声的H”&#xff08;hac…

如何正确安装与维护电化学一氧化碳传感器?专业指南

电化学一氧化碳传感器是一种用于检测空气中一氧化碳&#xff08;CO&#xff09;浓度的设备&#xff0c;它基于电化学原理运作。这类传感器的核心组成部分包括电极、电解质和透气膜&#xff0c;它们共同构成一个微型的电化学电池。 电化学一氧化碳传感器的特点包括&#xff1a;…

滑动窗口练习3-最大连续1的个数(三)

题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给定一个二进制数组 nums 和一个整数 k&#xff0c;如果可以翻转最多 k 个 0 &#xff0c;则返回 数组中连续 1 的最大个数 。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1,0,0,0,1…

平面设计考试题

考试题 缺省页作用&#xff1a;缓减缺省页带来的负面情绪&#xff0c;增加s用户与产品的粘度&#xff0c;提升产品的用户体验 网站基本类型 c端b端 c端 面向用户和消费者的 门户站 产品网站 企业网站 电商网站 专题页面 游戏网站 视频网站 h5移动端 四大门户网站:新浪&…

【Android源码】Gerrit上传Android源码

关于Gerrit的安装参考下面链接 【Android源码】Gerrit安装 要实现上传Android源码&#xff0c;需要经历以下几步&#xff1a; 下载Android代码创建源码仓库创建manifests仓库上传源码其他电脑下载源码 要证明Gerrit中的源码真实可用&#xff0c;肯定是以其他人能真正共享到代…

idea中maven全局配置

配置了就不需要每次创建项目都来设置maven仓库了。 1.先把项目全关了 2. 进入全局设置 3.设置maven的仓库就可以了

绝地求生PUBG都准备了但是一直不匹配怎么办

绝地求生PUBG&#xff0c;作为一款备受玩家喜爱的射击游戏&#xff0c;以其真实的战斗体验和策略性决策而著称。玩家们在游戏中需要熟悉地图、选择适合的装备和战斗方式&#xff0c;并与队友进行默契的团队合作&#xff0c;才能在战场上取得优势。最近很多玩家都开始下载游玩绝…