git命令和docker命令

1、git

git是分布式的版本控制工具

git可以通过本地仓库管理文件的历史版本记录

# 本地仓库操作的命令
# 初始化本地库
git init
# 添加文件到暂存区
git add .
git checkout 暂存区要撤销的文件名称
# 提交暂存区文件
git commit -m '注释'


# 版本穿梭
# 查看提交记录
git log
git reflog
# 版本穿梭
#      直接使用穿梭后的版本文件
git reset --hard 提交版本id
#      使用穿梭后的版本文件+ 穿梭前的修改
git reset --soft 提交版本id


# 删除git管理的文件
git rm 要删除的文件
git add .
git commit -m '注释'


# 本地分支管理
# 一条时间线上的历史版本记录 就是一个分支
# 通过Head指针指向分支 分支指向一个提交id

# 查看分支信息(所有分支+分支指向的提交id)
git branch -v
# 创建分支
git branch 分支名称
# 切换分支
git checkout 分支名称
# 删除分支 
git branch -d 分支名称
# 合并分支(在当前分支中去合并另一个分支的内容)
git merge 要合并的分支名称

# 分支合并冲突解决
# 查看冲突文件信息
git status
# 编辑冲突文件(保留需要的代码,删除冲突标志) 保存
vim ...
# 重新提交

git也可以通过远程仓库协作开发管理历史版本记录

#gitlab/gitee/github都是远程仓库
#	- gitlab是一个开源项目,用来搭建局域网的远程仓库
#	- 远程仓库需要使用账号密码才可以连接访问,账号还需要有对应的权限(决定账号是否可以访问远程仓库、或者推送更新到远程仓库...)

# 先在远程仓库中创建一个空仓库
# 本地创建标识(origin)连接空仓库
git remote add origin 远程仓库地址
# 查看远程仓库的标志
git remote 
# 推送本地仓库到远程仓库(远程分支不存在会自动创建)  需要使用账号连接
git push origin 本地分支:远程分支
# 拉取远程仓库最新的代码到本地
git pull origin 远程分支名称




# git工作流程(进入公司工作)
# 1、克隆远程仓库    需要使用账号连接
git clone 远程仓库地址
# 2、开发(写代码) 可能要切换分支
# 3、提交到本地仓库
git add .
git commit -m '备注'
# 4、推送自己的代码(涉及到远程仓库版本的修改:慎重)
git push origin  自己的分支:远程分支名称

# 协作冲突
# 解决三板斧
# 1、先拉取最新版本
git pull origin 分支
# 2、手动解决冲突
# 3、在提交推送到远程仓库
git add .
git commit -m 'xx'
git push origin 本地分支:远程分支

git常见问题:

你们公司开发中使用了哪些分支,某一个分支你们用来干什么?
master:生产分支
release:预发布分支
devlope: 开发分支(以后开发都是基于此分支进行)
	- feature:功能分支(某个程序员开发独立功能使用的分支)
hotfix:bug修复分支
什么是PR: pull request
	- 推送到远程仓库的分支,申请合并

2、docker

在这里插入图片描述

虚拟机
	测试:
	- mysql等中间件安装多个比较繁琐
	- 一个虚拟机只能装一个操作系统(一个系统中启动的服务不能重复、监听的端口号都是唯一的)
	生产中:
	- 快速水平扩展(mysql读写压力过大,同时启动多个分摊访问压力)	
		如果通过服务器 安装多个虚拟机的方式 安装多个中间件解决,每个虚拟机都是一个完整的设备,占内存磁盘空间较大
虚拟化容器技术:
	在一台服务器中安装一个工具(软件):
		- 工具可以创建多个进程,每个进程按照我们需要的最小环境准备部署需要的中间件或者程序

2.0 镜像加速器配置

docker hub远程仓库服务器在国外 下载速度较慢

为了提高下载速度 可以使用国内的镜像服务器(网易、阿里云)


2.1 docker概念

docker镜像仓库
	- 存放的镜像文件的仓库
	- docker镜像仓库地址:https://hub-stage.docker.com/
docker镜像: 类似于类
	- 特殊的文件:包含了一个镜像创建容器运行时的文件
	- docker可以基于镜像文件创建容器
docker容器: 类似于对象
	- 使用镜像文件运行后的进程
	- 每个容器对应一个docker的进程
	- 每个容器对应自己独立的一个环境,容器间互相独立隔离、和操作系统也是隔离的
	- 每个容器有自己的一套环境和自己的任务
docker用来虚拟化一个个的容器,每个容器是一个独立的环境可以运行程序	

2.2 镜像命令

搜索镜像:
	docker search 镜像名称
	docker search redis
下载镜像:
	docker pull 镜像名称[:tag]
	docker pull redis
	docker pull redis:6.2.14
查询镜像:
	docker images
	docker images -q   :只查询所有镜像id
	
删除镜像:
	docker rmi  镜像名称[:tag]   删除指定版本的镜像
	docker rmi  $(docker images -q) 查询所有镜像的id 全部删除

2.3 容器命令

2.3.1 创建容器

执行时会新创建容器

# 查看运行中的容器
docker ps
# 查看所有容器
docker ps -a
# 创建容器: 如果镜像不存在会自动下载   默认前台阻塞运行
docker run redis:7

# 1、创建守护式容器: 以守护的方式运行
#  -d  :守护启动容器
docker run -d redis:7
# --name: 配置容器名称(必须唯一)
docker run -d --name 'ertao' redis:7
# 2、创建交互式容器: 容器创建后自动进入到容器内部
#  -it :交互启动并打开指定终端       
docker run -it --name 'santao' redis:7  /bin/bash
# 进入容器内部:支持基础的linux命令
#  退出并关闭容器:输入exit+回车
#  退出不关闭容器: ctrl键+p键+q键

# 3、重新进入容器内部
# 重新进入容器 并使用容器内默认的终端(ctrl+c结束时会导致容器关闭)
docker attach ertao
# 重新进入容器并创建新的终端:
#  -it :交互方式进入容器    exit退出时,容器不会被关闭
docker exec -it  容器名称/id  /bin/bash

2.3.2 容器启动停止暂停恢复删除

#在已创建的容器的基础上进行的操作
docker start 容器id/容器名称
docker stop 容器id/容器名称
docker restart 容器id/容器名称
docker pause 容器id/容器名称
docker unpause 容器id/容器名称
docker kill 容器id/容器名称

# 查看正在运行中的容器
docker ps 
# 查看所有容器
docker ps -a
# 删除容器
docker rm 容器名称/id
# 删除未运行的所有容器
docker rm $(docker ps -qa)
# -f强制删除
docker rm -f 容器名称/id

2.3.3 容器端口配置

docker run -d  -p 6379:6379  -p 6380:6379 redis:7

容器日志查看:以后用来排查容器启动失败/请求处理失败的错误日志

# -f 跟随查看
# -n 查看最后的多少行
docker logs -f -n5 myredis1

查看容器详情信息:

docker inspect 容器名称/id

容器拷贝文件

2.3.4 容器目录挂载

为了保证容器内的数据安全,容器可以将自己内部的某些文件挂载到服务器(虚拟机)磁盘上,就算容器被误删除了,数据仍然存在不会丢失
但是,仍然有概率丢失,所以以后一般不会使用docker部署mysql

数据卷管理: volume命令基本不用

#数据卷:为docker容器准备的目录,存放docker容器产生的数据或者配置
# 查看所有的已创建的数据卷
docker volume ls
# 创建数据卷:暂时没有用(没有容器绑定)
docker volume create myredis2-data
# 查看数据卷详情:
docker volume inspect myredis2-data
# 删除指定数据卷
docker volume rm myredis2-data
# 删除未使用数据卷
docker volume prune
数据卷挂载:相对路径挂载数据卷
	- docker自动创建目录挂载
	- 不同的容器内部的程序产生的数据持久化的目录不同,所以挂载时容器内的目录不一定是什么
	- -v 用来挂载目录:相对路径表示由docker来在磁盘上创建目录和容器内的指定目录挂载
	-   -v  服务器内目录:容器内目录
	docker run -d --name myredis2 -p 7379:6379 -v myredis2-data:/data redis:7
目录挂载:绝对路径目录
	- 需要我们手动创建目录 然后配置挂载
	- 我们先创建 /myredis2-data 目录, 使用该目录挂载容器内的 data目录
	docker run -d --name myredis2 -p 7379:6379 -v /myredis2-data:/data redis:7
	
在容器挂载的目录中添加文件会不会挂载到容器内部?
	在本地目录中新增的文件或者对文件进行的修改 也会上传到容器的内部

docker创建redis容器 挂载配置文件和 数据文件目录

# 创建自定义目录
mkdir /myredis4
# 进入自定义目录
cd /myredis4/
# 创建存放redis配置文件的目录
mkdir ./conf
# 创建挂载redis持久化数据文件的目录
mkdir ./data
# 创建redis配置文件
vim /myredis4/conf/redis.conf  
protected-mode no
daemonize no
databases 16
port 6380
dir /data/

# 创建redis容器: 配置端口号映射、指定目录和配置文件挂载
#  redis-server /etc/redis/redis.conf 指的是容器创建后再容器内执行redis启动命令并使用我们挂载到容器内的配置文件
docker run -p 7381:6380 --name myredis4 -v /myredis4/conf/redis.conf:/etc/redis/redis.conf  -v /myredis4/data:/data -d redis:7 redis-server /etc/redis/redis.conf

2.3.5 容器文件复制

# 将虚拟机opt/a目录下的 文件复制到容器内的 /opt目录下
docker cp  /opt/a/pangju.txt myredis4:/opt/
# 将容器内的文件下载到虚拟机当前目录下
docker cp myredis4:/opt/pangju.txt ./

exec: 可以重新进入容器内,也可以再容器外 让容器执行命令打印结果

docker exec -it  myredis4  cat /etc/redis/redis.conf
docker exec -it  myredis4  ll /etc

2.3.6 迁移备份

docker支持将运行中的容器创建为镜像,将镜像打为tar包,也支持将镜像的tar包加载还原为镜像文件使用

# 将容器保存为镜像
docker commit 容器名称/id  自定义镜像名称:自定义版本号
# 镜像打包为tar我呢间
docker save -o 压缩包路径+名称   镜像名称:版本号
# 要恢复镜像的服务器 拿到压缩包以后
# 还原压缩包为镜像文件
docker load -i 压缩包路径+名称
# 使用镜像创建容器运行

===========================================================

3、自定义镜像-dockerfile

dockerfile 可以按照dockerfile语法定义一个文件,按照文件的配置准备好需要的其他文件,docker可以自动根据他们创建一个镜像文件使用

下面的内容:了解 按照课件过一遍

4、docker图形化工具

可以管理镜像和容器

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SOLIDWORKS Plastics基础功能详解(二)

浇口顾问 浇口顾问可迭代确定填充型腔所需的最佳注塑位置数量(最多 10 个)。 位置数量的默认值为自动,这将激活用于查找最佳注塑位置数量的迭代方法。要指定注塑位置的自定义数量,请选择用户定义。 具有压力相关粘度的材料 填充和…

走向边缘智能,美格智能携手阿加犀成功在高算力AI模组上运行一系列大语言模型

近日,美格智能发挥软硬件一体协同开发能力,融合阿加犀卓越的AI优化部署技术,在搭载高通QCS8550平台的高算力AI模组上,成功运行了一系列大语言模型,包括LLaMA-2、通义千问Qwen、百川大模型、RedPajama、ChatGLM2、Vicun…

Linux驱动

字符设备驱动模型 在字符设备中使用struct cdev这种结构来描述设备。 应用程序:读写文件,点灯;获取按键。用一些接口调用驱动程序去实现一些引用。 open这些函数,是C库实现的。从而进入内核,C库怎么进入内核&#xf…

【开源】基于JAVA语言的企业项目合同信息系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 合同审批模块2.3 合同签订模块2.4 合同预警模块2.5 数据可视化模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 合同审批表3.2.2 合同签订表3.2.3 合同预警表 四、系统展示五、核心代码5.1 查询合同…

【大厂面试】之 美团(一面经含答案)

美团 一面 tcp三次握手,四次挥手。time-wait、close-wait状态。MSL代表什么?为什么time-wait是2MSL,可不可以更长?如果不设置time-wait有什么影响 time-wait是主动关闭方的一个状态;close-wait是被动关闭方的一个状态…

微擎模块 出现Error: template source ‘common/message’ is not exist!解决方法

今天有会员反馈微课堂分销中心打不开,错误提示模板找不到:Error: template source ‘common/message’ is not exist!,看了下这模板应该微擎框架通用的,进公众号会员管理-会员中心网址居然也打不开,提示一样的错误&…

多播ip地址配置和通信理解

经常有朋友问,为什么相同局域网的ip需要相同网段,为什么组播的网段可以不同? 比如: 在您的局域网(192.168.1.0/24 网段)中设置多播组时,您可以选择一个在本地网络范围内尚未使用的多播组地址。…

绿色装配式建筑——气膜建筑

伴随新时代的到来和发展理念的深入实施,装配式绿色建筑已经成为建筑业发展的主流趋势。本文将深入分析气膜建筑,采用绿色建筑技术和装配式的建筑模式,形成了一套完善的建筑体系。 气膜建筑以气膜结构为主体,采用新型高强度柔性薄膜…

批量归一化

目录 一、BN层介绍 1、深层神经网络存在的问题 2、批量归一化的解决方案 3、BN层作用位置 4、BN层在做什么 5、总结 二、批量归一化从零实现 1、实现批量归一化操作 2、创建BN层 3、对LeNet加入批量归一化 4、开始训练 三、简明实现 1、对LeNet加入批量归一化 2…

【Spring实战】02 配置多数据源

文章目录 1. 配置数据源信息2. 创建第一个数据源3. 创建第二个数据源4. 创建启动类及查询方法5. 启动服务6. 创建表及做数据7. 查询验证8. 详细代码总结 通过上一节的介绍,我们已经知道了如何使用 Spring 进行数据源的配置以及应用。在一些复杂的应用中,…

mybatis的二级缓存使用以及禁用

目录 mybatis 二级缓存配置有两处 全局设置 mapper 设置 测试代码 执行结果 源码执行逻辑 创建 SqlSession 二级缓存配置是否添加 解析 cache 标签 XMLMapperBuilder MapperBuilderAssistant CacheBuilder PerpetualCache SerializedCache LoggingCache 将 cach…

电商数据分析-01-电商数据分析指标

电商数据指标 电商数据分析涉及多个指标,这些指标可以帮助企业了解其业务表现、用户行为和市场趋势。以下是一些常见的电商数据分析指标: 销售指标: 总销售额(GMV): 衡量特定时期内所有销售交易的总值。 平…

算法学习系列(十一):KMP算法

目录 引言一、算法概念二、题目描述三、思路讲解三、代码实现四、测试 引言 这个KMP算法就是怎么说呢,就是不管算法竞赛还是找工作笔试面试,都是非常爱问爱考的,其实也是因为这个算法比较难懂,其实就是很难,所以非常个…

【环境配置】虚拟环境配置

创建虚拟环境 conda create -n pytorch python3.9安装成功提示 激活虚拟环境 activate pytorch安装pytorch 查看 python 版本——python 退出 python——exit() 对照 python 与 pytorch 的对应关系 pytorch 地址: https://pytorch.org/get-started/previous-…

Python in Visual Studio Code 2023年12月发布

作者:Courtney Webster 排版:Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2023 年 12 月发布! 此版本包括以下公告: 可配置的调试选项已添加到“运行”按钮菜单可以使用 Pylance 显示类型层次…

JAVA JDK8时间类之Period、Duration、ChronoUnit的使用【详解】

JAVA JDK8时间类之Period、Duration、ChronoUnit的使用 1. Duration1.1 简介:用于时间间隔(秒、毫秒、纳秒等)1.2 案例 2. Period时间间隔(年、月、日)2.1 简介2.2 案例 3. ChronoUnit3.1 简介案例 4. 案例所有代码: 1. Duration 1.1 简介:用…

边缘计算AI智能盒子的视频源必须是固定点监控摄像头吗?

边缘计算AI盒子的视频输入源,要求是RTSP或者GB28181,可以是固定点监控摄像头(枪机、球机等),也可以是移动摄像头,例如执法记录仪、智能安全帽、布控球等,但由于RTSP输入要求摄像头有固定IP&…

中庸 原文与译文

《中庸》是中国古代论述人生修养境界的一部道德哲学专著,是儒家经典著作之一,原属《礼记》第三十一篇,相传为战国时期子思所作。 其内容肯定“中庸”是道德行为的最高标准,认为“至诚”则达到人生的最高境界,并提出“…

算法——哈希表

哈希表简介 **是什么:**存储数据的容器有什么用:快速查找某个元素,时间复杂度O(1),空间复杂度O(n)**什么时候使用哈希表:**频繁查找某一个数(这里不要忘了之前的二分,时间复杂度O(logN)&#x…

sqlilabs第三十二三十三关

Less-32(GET - Bypass custom filter adding slashes to dangerous chars) 手工注入 由 宽字符注入可知payload 成功触发报错 http://192.168.21.149/Less-32/ ?id1%df 要写字符串的话直接吧字符串变成ascii码 注意16进制的表示方式 自动注入 sqlmap -u http:…