许久没写相关内容了,这段时间都在忙乱七八糟的事情......结果什么成果都没有........唉...
实习也寄了,就看看能否进组了
简单的git应用,因为设备用的是linux操作系统,所以这里就先不提供windows的下载方式了
docker也整理在这里了,这俩都是常用的后端技术
dgp第五赛季完结撒花!大冈泡,启动
另外发现了一个非常好的中文文档
docker: Docker 简介和安装 - Docker 快速入门 - 易文档 (easydoc.net)
git是一种代码版本管理工具,可以用来进行版本控制.
在每个git工作目录下面都有一个.git的文件(这个文件是不可见的,但是在linux下的ls-a命令可以看到或者文件)这个文件也就是我们常说的git仓库
这个文件主要负责的就是git的元数据,用来描述版本之类的信息.可以这么说,有了这个.git文件,这个文件夹才能称之为git目录
(1)git目录的部署指令
在创建git目录之前,我们要先创建相关的用户信息
git config --global user.name
git config --global user.email
两个指令分别用来设置用户名和邮箱信息,这个将在展示日志的时候直到是谁写的
部署完之后就可以创建git工作目录,创建方法就是进入工作目录下使用指令
git init
使用该指令以后,就会创建.git文件,整个文件夹正式进入git工作目录阶段
(假的网课害人捏)
git我们严格来说,在本地上可以分为三个区域
unmodifiy | modifiy | stage |
unmodified:未修改区域,也可以理解为工作区域,也就是我们实际操作的代码的版本
modified:暂存区,我们使用如下的指令以后,会把当前工作区域的代码的版本保存在暂存区域
git add <文件名称>
stage:又叫做git本地仓库,我们使用如下指令的时候,就会把暂存区的代码存到git仓库区域中,这样就完成了真正意义的存储
git commit 文件名
路径就是 工作区域----->暂存区域------>stage区域
(另外注意,每次使用完相关指令以后,用户操作的地方仍然是工作区域,相当于我们无法修改暂存区和git仓库的内容,只能通过add和commit来更改版本)
第四个区域其实就是远程仓库,
远程仓库可以通过clone的方式克隆到本地,并且进行一个链接匹配
像这样克隆以后,远程仓库和本地的副本就建立好了连接关系,后续的push pull fetch也就相关锁定了
git clone url
用远程仓库中拉取并合并到当前分支的指令为
git pull <分支名称A>
会把远程仓库中名为A的分支给合并到本地当前的分支
如果不加这个参数就会默认合并到同名分支上
往远程仓库push的指令为
git push
把当前分支归并到远程仓库的A分支上
默认情况和pull是一样的
上面这两个指令的原理其实是fetch
fetch
操作用于从远程仓库中获取最新的提交历史和分支信息,但并不会自动合并到当前分支。它会将远程仓库的内容拉取到本地仓库的一个特殊的区域,称为远程跟踪分支(remote tracking branch)
当然这个指令已经不怎么用了,一般一步到位push和pull即可
git一个很重要的东西就是分支branch,分支就代表了某个事业线或者某个改动
每种分支在暂存区域和git仓库区域都有自己独立的空间,不会相互干扰
例如,A合并了B分支,A相当于合并了B的修改内容,接下来仍然可以对AB两个分支进行单独操作
另外注意,git的归并是在git仓库层次上进行归并的
(1)分支的创建,切换和合并
//展示所有的分支
git branch
//创建分支
git branch 分支名字
//修改分支
git checkout 分支名字
//当前分支合并某个分支
git merge 分支名字
(2)在合并的时候可能会存在冲突
目前已知的会发生的冲突就是,如果两个分支都在同一份文件的同一行代码进行了修改
那么就会发生冲突情况,这种就需要我们自行处理
打包部署安装的工具,一个轻量级的虚拟机,只用来打包完整的运行环境,不安装没用的东西
用简单的命令就能安装好
且可以跨平台
打包:依赖,库,软件打包在一起,变成一个安装包
分发:上传到镜像仓库
部署:安装包运行,即可模拟出一模一样的运行环境
镜像:软件安装包,方便进行传播
容器:软件安装以后的状态
(1)第一步要安装这玩意
镜像:可以理解为软件安装包,可以方便的进行传播和安装。 容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器。
安装在官网就可以,安装以后记得区用户目录下的.docker/deamon.json文件夹中添加镜像,不然有梯子也爬不到东西
"registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://mirror.ccs.tencentyun.com" ]
(2)基本的概念
正常来说,开发的情况应该是开发环境--->测试环境----->发布(用户)
最常见的就是不同的jdk文档,在不同的机器上环境根本不一样,这就带来很大的问题,水土不服
docker就是把环境和代码一起发出去,容器就是负责装代码和代码的环境
docker基于golang实现,,,,我测还是要继续看go啊
(3)docker的基本架构
镜像(image):相当于操作系统中的root文件,可以理解为一个操作系统的模板或者环境的模板
容器(container):容器时镜像动态运行的实体,镜像和容器可以理解为类和对象的关系
仓库:用来保存镜像,是代码控制中心
一般来说,我们要从远程仓库中拉取镜像,但是远程仓库一般都是墙外的,没法获取
所以要使用加速器
(1)对于进程的操作
systemctl start docker systemctl stop docker systemctl restart docker systemctl status docker systemctl enable docker//让docker开机自启动
以上几个命令是直接对docker进行操作
但是在window下开启docker服务使用的是
net start docker
Windows 上的 Docker 提供了图形用户界面 (GUI) 工具,称为 Docker Desktop。Docker Desktop 是一个易于使用的桌面应用程序,提供了直观的图形界面,用于管理 Docker 容器和镜像。
所以下面不会再解释对于docker的东西了
在window下,可以通过以下两个指令查询有关信息
docker version
docker ps
3.直接使用的案例
(1)使用docker安装redis软件(具体的指令可以在docker官方网站找到)
docker run -d -p 6379:6379 --name redis redis:latest
这个是根据已有的镜像(网络镜像)生成一个容器,里面的参数可以在官网文档中找到相关的内容,包括但不限于 -d:后台运行 -p A:B 占用端口:开放端口 --name 容器名字
redis:latest 使用何种镜像:这个镜像的什么版本
然后我们进入docker的桌面版就可以看到redis的工作相关
可以将容器视为一个服务端。每个容器可以承载一个或多个应用程序或服务,并在其中运行。容器提供了应用程序的隔离环境,使其可以在独立的运行时环境中以服务的形式对外提供功能。
通过容器化,你可以将应用程序、服务或微服务拆分为多个独立的容器,每个容器专注于执行特定的任务。每个容器都可以被视为一个服务端,监听特定的端口并响应来自客户端的请求。
4.构建自己的docker镜像
构建自己的docker其实很简单,主要还是要修改dockerfile文件,
比如你想要把一个项目打包,那么就在整个项目的根目录下创建dockerfile文件
文件内部是这样的,以一个vue项目的打包为例
# 指定基础镜像
FROM node:14-alpine
# 设置工作目录
WORKDIR /app
# 复制 package.json 和 package-lock.json 到容器中
COPY FiveChest/package*.json /app/
# 安装项目依赖
RUN npm install --registry=https://registry.npm.taobao.org
# 复制项目文件到容器中
COPY . .
# 定义容器启动时要运行的命令
CMD [ "npm", "run", "dev" ]
下面依次解释这些东西的作用
FROM是指定基础镜像,比如ubuntu,centos,获得node这种
WORKDIR整个是工作目录,指定某个文件夹成为工作目录,这个目录会优先进行一些处理
COPY 把本机中某个地方的文件复制到容器中的某个地方
RUN执行某个指令,这里是安装依赖,因为前面设置了工作牡蛎,这里会先根据工作目录中的json安装依赖
copy赋值整个文件夹
最后一个CMD 是容器启动的指令
(另外要注意的一点是,直接复制整个工作目录,然后安装依赖,启动是可行的,就是会稍微慢一点.....看你能否接受了)
创建完这样一个dockerfile文档以后,就要开始构建镜像
docker build -t testfront:v1 .
-t整个参数指的是设置镜像名称和版本号,这里的镜像为testfront,版本号为v1
这样就可以构建出一个镜像
这个时候可以直接再可视化目录中找到镜像,并且点击运行,就会自动生成一个容器
运行也可以使用指令,建议使用指令,因为后续更全面
容器可以理解为一个小虚拟机,或者是一个小服务器