知识点总结--day12(常用组件3/3)

目录

七docker相关

7.1docker与虚拟机的区别?

7.2、常用命令

7.3、docker的数据卷

7.4、docker的默认网络模式有哪些

[7.5、什么是Docker Compose](#7.5、什么是Docker Compose)

八git相关

8.1、git本地仓库和远程仓库的区别

8.2、git基本的工作原理是什么

8.3、如果使用git产生了冲突,你是怎么解决的?

8.4、你们项目中分支是如何管理,创建分支有什么规则?

九、maven相关

[9.1、maven 用来做什么](#9.1、maven 用来做什么)

9.2、maven的规约说一下

9.3、Maven的生命周期

末尾页


七docker相关

7.1docker与虚拟机的区别?

  1. 虚拟机(Virtual Machine):虚拟机是利用虚拟化技术在物理硬件上创建一个或多个完整的虚拟计算机。每个虚拟机都包含自己的操作系统、应用程序和资源,运行在宿主机的虚拟化软件(如 VMware、VirtualBox 等)上。

  2. Docker:Docker 是一种容器化平台,通过使用容器技术将应用程序及其依赖项打包在一个称为容器的单元中。Docker 容器与宿主机共享操作系统内核,但相互隔离,可以在同一宿主机上运行多个容器。

7.2、常用命令

  1. docker run:运行一个新的容器。

    1. 例如:docker run -it --name mycontainer ubuntu:latest /bin/bash,这将在名为 "mycontainer" 的容器中运行最新版本的 Ubuntu 镜像,并启动一个交互式的 bash shell。
  2. docker ps:列出当前正在运行的容器。

    1. 例如:docker ps,这将列出当前正在运行的所有容器,包括容器 ID、名称、镜像、状态等信息。
  3. docker images:列出本地的镜像。

    1. 例如:docker images,这将列出本地已经下载的所有镜像,包括镜像 ID、标签、大小等信息。
  4. docker pull:从远程仓库拉取镜像到本地。

    1. 例如:docker pull nginx:latest,这将从 Docker Hub 拉取最新版本的 Nginx 镜像到本地。
  5. docker build:基于 Dockerfile 构建镜像。

    1. 例如:docker build -t myimage:1.0 .,这将根据当前目录下的 Dockerfile 构建一个名为 "myimage" 版本号为 "1.0" 的镜像。
  6. docker stop:停止一个正在运行的容器。

    1. 例如:docker stop mycontainer,这将停止名为 "mycontainer" 的容器。
  7. docker start:启动一个已经停止的容器。

    1. 例如:docker start mycontainer,这将启动名为 "mycontainer" 的已经停止的容器。
  8. docker rm:删除一个或多个容器。

    1. 例如:docker rm mycontainer,这将删除名为 "mycontainer" 的容器。

7.3、docker的数据卷

Docker 的数据卷(Volume)是一种持久化存储数据的机制,可以在容器之间共享数据或者将数据持久化到宿主机上。使用数据卷可以解决容器中数据持久化和共享 的问题,同时也提供了更好的数据管理备份能力。

7.4、docker的默认网络模式有哪些

Docker 中常见的默认网络模式:

  1. bridge 模式

    1. 这是 Docker 默认使用的网络模式。在这种模式下,每个容器都会分配一个唯一的 IP 地址,并且可以通过容器名称 或者 IP 地址相互通信。如果没有显式指定网络模式,那么 Docker 会自动使用 bridge 网络。
  2. host 模式

    1. 在这种模式下,容器宿主机共享同一个网络命名空间,容器将直接使用宿主机的网络接口。这样可以获得最佳的网络性能,但同时也可能带来一些安全隐患。
  3. none 模式

    1. 在这种模式下,容器拥有自己的网络栈,但是不进行任何配置。这意味着容器无法直接访问外部网络,也无法被外部网络访问。这种模式通常用于一些特殊的网络场景,如只需要本地通信的容器。

7.5、什么是Docker Compose

Docker Compose 是一个用于定义和运行多个 Docker 容器应用的工具 。通过一个单独的 docker-compose.yml 配置文件,可以定义整个应用的服务、网络配置、数据卷等,并使用一个命令来启动、停止或管理整个应用。

八git相关

8.1、git本地仓库和远程仓库的区别

这两类仓库在平时开发也是必不可少的

  • 本地仓库是存储在计算机本地的Git仓库,用于保存项目的完整历史记录和文件版本。可以进行开发、修改和提交代码等git控制的操作。

  • 远程仓库是位于网络上的Git仓库,通常托管在远程服务器上,如GitHub、Gitee、GitLab等。它用于协作和共享代码,团队成员可以将本地仓库的更改推送到远程仓库,或者从远程仓库拉取最新的更改到本地仓库。

8.2、git基本的工作原理是什么

Git的主要作用就是跟踪和管理项目文件的变化,记录文件的每个版本和修改。这里面有三个概念来进行控制

  • 工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码

  • 版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息日志信息文件版本信息

  • 暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

8.3、如果使用git产生了冲突,你是怎么解决的?

好的~

我们团队开发,当拉取代码的时候,如果有其他同事也跟我一样修改了同一个类中的相同位置的代码就有可能会发生冲突,解决冲突的第一时间我会先找对应的同事进行沟通,这些冲突一般都是前期沟通不充分导致的,通过沟通确定是什么问题。

解决冲突操作一般会使用idea来完成,当拉取代码的时候,如果有冲突会弹窗进行提示,主要是会做版本的比对有本地的代码和远程仓库的代码, 然后根据实际情况选择即可,最终解决冲突需要commit

如果不用idea,当执行pull命令的时候,也有可能会产生冲突,解决方案是

  • 首先使用git status来查看哪些文件冲突

  • 找到这些冲突的文件,在文件中会有冲突代码的标记,也是两部分:本地仓库的代码和远程仓库的代码

  • 然后根据实际情况,进行删除多余的代码和标记即可

  • 解决完冲突以后,需要使用git add来标记已解决冲突

  • 完成所有的冲突解决后,需要使用git commit命令来提交修改,如果需要推送,可以直接git push

8.4、你们项目中分支是如何管理,创建分支有什么规则?

我们项目的分支主要有 masterrelease、各种 develop,其中 develop 指的是开发过程中,每个版本根据需求实际情况, 创建一个或者多个分支,当需求开发完成以后,合并到其中一个分支,当本次需求上线后,在保证与线上代码一致的情况下, 将上线分支合并到 release并打上 tag 标签,记录版本信息 ,最后将release 再合并到 mastermasterrelease 基本上不做修改。

  • 分支名称有4段组成,格式如下:

dev-分支主名称-版本-日期

分支主名称 命名一般是模块名或者需求的简单描述,尽量做到见名知意, 后期如果需要查找旧版本信息, 相对也会比较容易查找.

九、maven相关

9.1、maven 用来做什么

Maven 是一个流行的项目管理工具,主要用于 Java 项目的构建、依赖管理和项目信息管理。以下是 Maven 的主要用途:

  1. 项目构建

    1. Maven 可以帮助开发者对 Java 项目进行自动化构建。通过 Maven 的约定优于配置的原则 ,开发者只需定义项目的基本结构依赖关系,Maven 就可以自动完成项目的编译、测试、打包等构建工作。
  2. 依赖管理

    1. Maven 通过中央仓库和本地仓库来管理项目的依赖库 。开发者可以在项目的配置文件中声明所需的依赖,Maven 将自动下载并管理这些依赖库。
  3. 项目信息管理

    1. 通过 Maven,开发者可以方便地管理项目的元数据信息,如项目名称、版本号、作者、许可证等。这些信息可以被用于生成项目文档、发布到中央仓库等操作。
  4. 项目报告

    1. Maven 提供了丰富的插件机制,可以生成各种项目报告,如单元测试报告、代码覆盖率报告、静态代码分析报告等,帮助开发者更好地了解项目的状态。
  5. 项目部署

    1. Maven 可以帮助开发者将构建好的项目部署到指定的环境中,如本地、测试、生产环境等。

9.2、maven的规约说一下

  • /src/main/java/ :Java 源码。

  • /src/main/resource :Java 配置文件,资源文件。

  • /src/test/java/ :Java 测试代码。

  • /src/test/resource :Java 测试配置文件,资源文件。

  • /target :文件编译过程中生成的 .class 文件、jar、war 等等。

  • pom.xml :配置文件

6

9.3、Maven的生命周期

Maven 生命周期按照构建过程分为三个部分,即清理(clean)、构建(build) 和 站点生成(site)。每个部分包含不同的阶段(phase),执行的顺序是固定的,也就是说 Maven 在执行构建时会依次运行每个阶段。

以下是 Maven 的生命周期和各个阶段的简要说明:

  1. 清理生命周期

    1. pre-clean:在清理之前执行的动作

    2. clean:清理上一次构建生成的文件

  2. 构建生命周期

    1. validate:验证项目是否正确并且所有必要信息都可用

    2. compile:编译项目的源代码

    3. test:测试编译后的代码

    4. package:将编译后的代码打包成可发布的格式,如 JAR、WAR 等

    5. install:将打包好的代码安装到本地仓库,方便其他项目进行依赖管理

    6. deploy:将打包好的代码部署到远程仓库,方便其他人使用

  3. 站点生命周期

    1. pre-site:在生成站点之前执行的动作

    2. site:生成项目的站点文档

    3. post-site:在生成站点之后执行的动作,如部署站点到服务器上

    4. site-deploy:将生成的站点部署到远程服务器上

末尾页

相关推荐
Shining059641 分钟前
QEMU 编译开发环境搭建
人工智能·语言模型·自然语言处理·云原生·qemu·vllm·华为昇腾
匀泪18 小时前
云原生(Kubernetes service微服务)
微服务·云原生·kubernetes
倔强的胖蚂蚁20 小时前
Ollama Modelfile 配置文件 全指南
云原生·开源
AutoMQ1 天前
AWS 新发布的 S3 Files 适合作为 Kafka 的存储吗?
云原生·消息队列·云计算
MY_TEUCK1 天前
从零开始:使用Sealos Devbox快速搭建云原生开发环境
人工智能·spring boot·ai·云原生·aigc
没有口袋啦2 天前
《基于 GitOps 理念的企业级自动化 CI/CD 流水线》
阿里云·ci/cd·云原生·自动化·k8s
柯西劝我别收敛2 天前
Koordinator-Scheduler 调度器源码解析
后端·云原生
行者-全栈开发2 天前
拆解高可用CRM网站的容灾设计与云原生实践
微服务·云原生·异地多活·监控告警·高可用设计·crm架构·容灾演练
Crazy________2 天前
4.13docker仓库registry
mysql·算法·云原生·eureka
小义_3 天前
【Kubernetes】(五) pod2
linux·云原生·容器·kubernetes