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

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 redisdocker pull redis:6.2.14
查询镜像:docker imagesdocker 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图形化工具

可以管理镜像和容器

相关文章:

git命令和docker命令

1、git git是分布式的版本控制工具 git可以通过本地仓库管理文件的历史版本记录 # 本地仓库操作的命令 # 初始化本地库 git init # 添加文件到暂存区 git add . git checkout 暂存区要撤销的文件名称 # 提交暂存区文件 git commit -m 注释# 版本穿梭 # 查看提交记录 git log…...

【K8S in Action】服务:让客户端发现pod 并与之通信(2)

一 通过Ingress暴露服务 Ingress (名词) 一一进入或进入的行为;进入的权利;进入的手段或地点;入口。一个重要的原因是每个 LoadBalancer 服务都需要自己的负载均衡器, 以及 独有的公有 IP 地址, 而 Ingres…...

Spring Boot 中实现跨域的几种方式

前言 在现代Web应用中,由于安全性和隐私的考虑,浏览器限制了从一个域向另一个域发起的跨域HTTP请求。解决这个问题的一种常见方式是实现跨域资源共享(CORS)。Spring Boot提供了多种方式来处理跨域请求,本文将介绍其中的…...

WT2605C音频蓝牙语音芯片:单芯片实现蓝牙+MP3+BLE+电话本多功能应用

在当今的电子产品领域,多功能、高集成度成为了一种趋势。各种产品都需要具备多种功能,以满足用户多样化的需求。针对这一市场趋势,唯创知音推出了一款集成了蓝牙、MP3播放、BLE和电话本功能的音频蓝牙语音芯片——WT2605C,实现了单…...

计算机毕业设计 基于SpringBoot的高校宣讲会管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

Android 使用Serialiable接口和Parcelable接口进行数据传送

一、前言 这篇文章主要针对Serialiable和Parcelable接口来传递对象。呈现的功能是跳转到另一个界面,然后通过toast展现我收到的数据。 二、使用Serialiable接口传递数据 1.创建需要传递的对象 //必须实现Serializable接口,此对象才有传递的资格 publ…...

【数据结构入门精讲 | 第十七篇】一文讲清图及各类图算法

在上一篇中我们进行了的并查集相关练习,在这一篇中我们将学习图的知识点。 目录 概念深度优先DFS伪代码 广度优先BFS伪代码 最短路径算法(Dijkstra)伪代码 Floyd算法拓扑排序逆拓扑排序 概念 下面介绍几种在对图操作时常用的算法。 深度优先D…...

Python 直方图的绘制-`hist()`方法(Matplotlib篇-第7讲)

Python 直方图的绘制-hist()方法(Matplotlib篇-第7讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…...

Quartz持久化(springboot整合mybatis版本实现调度任务持久化)--提供源码下载

1、Quartz持久化功能概述 1、实现使用quartz提供的默认11张持久化表存储quartz相关信息。 2、实现定时任务的编辑、启动、关闭、删除。 3、实现自定义持久化表存储quartz定时任务信息。 4、本案例使用springboot整合mybatis框架和MySQL数据库实现持久化 5、提供源码下载 …...

掌握的单词个数 - 华为OD统一考试

OD统一考试 题解: Java / Python / C++ 题目描述 有一个字符串数组 words 和一个字符串 chars。假如可以用 chars 中的字母拼写出 words 中的某个"单词"(字符串),那么我们就认为你掌握了这个单词。 words 的字等仅由 a-z 英文小写宁母组成,例如“abc”。 char…...

如何使用ArcGIS Pro将Excel表转换为SHP文件

有的时候我们得到的数据是一张张的Excel表格,如果想要在ArcGIS Pro中进行分析或者制图则需要先转换为SHP格式,这里为大家介绍一下转换方法,希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的POI数据,除了P…...

11.1Linux串口应用程序开发

UART简介 UART的全称是Universal Asynchronous Receiver and Transmitter,即异步发送和接收。 串口在嵌入式中用途非常的广泛,主要的用途有: 打印调试信息;外接各种模块:GPS、蓝牙; 串口因为结构简单、稳…...

log4j学习

依赖 <!--log4j依赖--> <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version> </dependency><!--测试--> <dependency><groupId>org.junit.jupiter</g…...

【Vue2+3入门到实战】(4)Vue基础之指令修饰符 、v-bind对样式增强的操作、v-model应用于其他表单元素 详细示例

目录 一、今日学习目标1.指令补充 二、指令修饰符1.什么是指令修饰符&#xff1f;2.按键修饰符3.v-model修饰符4.事件修饰符 三、v-bind对样式控制的增强-操作class1.语法&#xff1a;2.对象语法3.数组语法4.代码练习 四、京东秒杀-tab栏切换导航高亮1.需求&#xff1a;2.准备代…...

【数据结构和算法】找到最高海拔

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 前缀和的解题模板 2.1.1 最长递增子序列长度 2.1.2 寻找数组中第 k 大的元素 2.1.3 最长公共子序列…...

redis相关问题

1、概述&#xff1a; 1. 非关系型数据库 2. 是分布式缓存数据库 3. 使用 key -value结构存储 2、作用&#xff1a; 用作缓存降低数据库压力&#xff0c;提高性能&#xff1b;可以用作消息队列&#xff08;削峰、解耦、异步调用&#xff09; 3、基础语法&#xff1a; 基础命令…...

第41节: Vue3 watch函数

在UniApp中使用Vue3框架时&#xff0c;你可以使用watch函数来观察和响应Vue实例上的数据变化。以下是一个示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用watch函数&#xff1a; <template> <view> <input v-model"message" type"text…...

Centos7:升级gcc、g++到版本5.2.0

背景 Centos7.9版本默认的g版本是4.8.5&#xff0c;在实践golang项目中&#xff0c;用到C14&#xff0c;编译时会报错&#xff1a;gcc: error: unrecognized command line option ‘-stdc14’ 因此&#xff0c;gcc需要升级到更高版本&#xff0c;我这里使用源码编译形式升级到g…...

Pytohn data mode plt

文章目录 文件的读写创建.csv类型的文件&#xff0c;并读取文件创建.xlsx文件 使用Python做图生成数据集切片取值操作修改张量中指定位置的数据 知识点torch.arange(x)torch.tensor(2)Atorch.randn(36).reshape(6,6)shapenumel()reshape(x,y,z)torch.zeros(3,3,4)torch.ones(2,…...

内网离线搭建之----kafka集群

1.系统版本 虚拟机192.168.9.184 虚拟机192.168.9.185 虚拟机192.168.9.186系统 centos7 7.6.1810 2.依赖下载 ps&#xff1a;置顶资源里已经下载好了&#xff0c;直接用&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...