当前位置: 首页 > news >正文

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

用到的环境:

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.jarWORKDIR /
    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 dockerfileFROM 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: 8088spring:application:name: service-usercloud:nacos:discovery:server-addr: 192.168.X.XXX:8848datasource:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.X.XXX:3306/db_spzx?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=trueusername: rootpassword: 1234data:redis:host: 192.168.X.XXXport: 6379mybatis:config-location: classpath:mybatis-config.xmlmapper-locations: classpath:mapper/*/*.xml

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

spring:cloud:nacos:config:server-addr: 192.168.X.XXX:8848config: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自身环境配置有问题)

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

相关文章:

  • git reset 和 git revert区别
  • 为什么英智智能宝能让律师工作事半功倍
  • Query Rewriting for Retrieval-Augmented Large Language Models
  • C语言_结构体初阶(还未写完)
  • 笔记本电脑部署VMware ESXi 6.0系统
  • 【Linux系统】CUDA的安装与graspnet环境配置遇到的问题
  • Android Gradle 开发与应用 (四): 多模块构建与组件化,提升Android开发效率的途径
  • 施工日志管理
  • 产科管理系统 专科电子病历系统源码,前后端分离架构,多家医院产科广泛运用,系统稳定,功能齐全
  • element-ui Tree之懒加载叶子节点强制设置父级半选效果
  • Spring Cloud Gateway如何匹配某路径并进行路由转发
  • 时序(流式)图谱数据仓库AbutionGraph功能介绍-Streaming Graph OLAM Database
  • 【MySQL系列】隐式转换
  • JDK-SPI-服务提供者接口
  • Linux系统之安装Ninvaders太空入侵者小游戏
  • 分享一款快速APP功能测试工具
  • DataBase in Android
  • es6--symbol
  • IDEA常用插件整理
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Laravel 菜鸟晋级之路
  • leetcode讲解--894. All Possible Full Binary Trees
  • mysql外键的使用
  • python 装饰器(一)
  • React 快速上手 - 07 前端路由 react-router
  • Vue组件定义
  • 安装python包到指定虚拟环境
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 基于组件的设计工作流与界面抽象
  • 排序算法学习笔记
  • 漂亮刷新控件-iOS
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 1.Ext JS 建立web开发工程
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • UI设计初学者应该如何入门?
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • #控制台大学课堂点名问题_课堂随机点名
  • (06)Hive——正则表达式
  • (42)STM32——LCD显示屏实验笔记
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (七)c52学习之旅-中断
  • (四)事件系统
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转)3D模板阴影原理
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .form文件_一篇文章学会文件上传
  • .md即markdown文件的基本常用编写语法
  • .naturalWidth 和naturalHeight属性,
  • .NET 使用配置文件
  • .net 受管制代码
  • .NET多线程执行函数