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图形化工具

可以管理镜像和容器

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dpdk原理概述及核心源码剖析

dpdk原理 1、操作系统、计算机网络诞生已经几十年了,部分功能不再能满足现在的业务需求。如果对操作系统做更改,成本非常高,所以部分问题是在应用层想办法解决的,比如前面介绍的协程、quic等,都是在应用层重新开发的框…

MongoDB数据库本地部署并结合内网穿透实现navicat公网访问

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 前言 MongoDB是一个基于分布式文件存储的数…

Jave EE 网络原理之网络层与数据链路层

文章目录 1. 网络层1.1 IP 协议1.1.1 协议头格式1.1.2 地址管理1.1.2.1 认识 IP 地址 1.1.3 路由选择 2. 数据链路层2.1 认识以太网2.1.1 以太网帧格式2.1.2 DNS 应用层协议 1. 网络层 网络层要做的事情,主要是两个方面 地址管理 (制定一系列的规则&am…

解决ELement-UI三级联动数据不回显

目录 一.处理数据时使用this.$set方法来动态地设置实例中的属性,以确保其响应式。 二.检查数据格式是否正确 三.绑定v-if 确保每次执行 四.完整代码 一.处理数据时使用this.$set方法来动态地设置实例中的属性,以确保其响应式。 二.检查数据格式是否正确…

BFS解决FloodFill算法相关leetcode算法题

文章目录 1.图像渲染2.岛屿数量3.岛屿的最大面积4.被围绕的区域 1.图像渲染 图像渲染 class Solution {int dx[4] {0,0,1,-1};int dy[4] {1,-1,0,0}; public:vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int…

2023年12月【考试战报】|ORACLE OCP 19C考试通过

2023年10月【考试战报】|ORACLE OCP 19C考试通过-CSDN博客文章浏览阅读122次。自OCP认证进入中国以来&#xff0c;越来越被大多数DBA所认可&#xff0c;也越来越被企业所重视&#xff0c;90%以上DBA深造&#xff0c;都会选择OCP认证。随着OCP认证在全国范围内的普及&#xff0c…

口袋参谋:如何布局买家评论,提高宝贝转化率?

​宝贝转化低&#xff1f; 除了和关键词、主图有关系&#xff0c;与买家评论也有一定的关联&#xff01; 一个差评&#xff0c;足以让宝贝的转化跌落谷底。只要网购&#xff0c;评价&#xff0c;永远是躲不掉的一环。 作为买家&#xff1a; 评价的作用&#xff0c;是用来甄…

Spring之国际化:i18n

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

Jupyter Notebook的安装及在网页端和VScode中使用教程(详细图文教程)

目录 一、Jupyter Notebook1.1 组成组件1.2 优点1.3 常规用途 二、安装及使用2.1 网页端2.1.1 安装Jupyter Notebook2.1.2 检验是否安装成功2.1.3 启动Jupyter Notebook2.1.4 使用Jupyter Notebook 2.2 VScode中安装及使用2.2.1 安装Jupyter2.2.2 使用Jupyter 三、常用命令3.1 …

PaddleOCR 的使用,极简介绍

安装 参考github的官网就可以&#xff1a; github链接 简单的说&#xff0c;就是两句话&#xff1a; python3 -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple pip install "paddleocr>2.0.1" # 推荐使用2.0.1版本 Python下的使用…

[环境配置]win10关闭病毒和威胁防护防止乱删软件

搜索栏输入病毒和威胁即可看到 如果没有搜到您可以从菜单栏进到到Windows设置 选择更新和安全 点击后进到windows安全中心&#xff0c;随后进到到病毒和威胁防护 关闭所有选项

软件测试必问的33个面试题

1.你为什么选择软件测试行业 因为之前有了解软件测试这个行业&#xff0c;觉得他的发展前景很好。 2.根据你以前的工作经验描述一下软件开发、测试过程&#xff0c;由那些角色负责&#xff0c;你做什么 要有架构师、开发经理、测试经理、程序员、测试员。我在里面主要是负责所…

Git 分布式版本控制系统(序章1)

第一章 Git 分布式版本控制系统 为什么学Git? 某些企业面试需要掌握Git&#xff0c;同时&#xff0c;也方便管理自己的Qt项目。 一、Git 客户端下载&#xff08;Windows&#xff09; 下载地址 https://gitee.com/all-about-git#git-%E5%A4%A7%E5%85%A8 二、Git 的特点 分支…

自动驾驶中的“雷达”

自动驾驶中有好几种雷达&#xff0c;新手可能会蒙蔽&#xff0c;这里统一介绍一下它们。 首先&#xff0c;所有雷达的原理都是发射波&#xff0c;接收回波&#xff0c;并通过发射和接收的时间差以及波的速度计算距离。只不过发射的波不同&#xff0c;功能也不同。 激光雷达 …

unity HoloLens2开发,使用Vuforia识别实体 触发交互(二)(有dome)

提示&#xff1a;文章有错误的地方&#xff0c;还望诸位大神不吝指教&#xff01; 文章目录 前言一、打包到HoloLens二、Vuforia相关1.配置识别框2.制作一个半透明识别框&#xff1a;3.设置如下4.问题 四 HoloLens2 问题总结 前言 我使用的utniy 版本&#xff1a;Unity 2021.3…

广州华锐互动VRAR:VR安全模拟驾驶让顾客身临其境感受真实试驾体验

随着科技的不断发展&#xff0c;汽车行业也在不断地进行创新。从电动汽车到自动驾驶&#xff0c;再到如今的虚拟现实技术&#xff0c;汽车行业的未来充满了无限的可能性。而在这些创新中&#xff0c;VR安全模拟驾驶无疑是最具吸引力的一项。通过戴上一副虚拟现实眼镜&#xff0…

本机ping不通虚拟机

windows下finall shell连不上虚拟机了&#xff0c;之前是可以的&#xff0c;然后ping虚拟机&#xff0c;发现也ping不通&#xff0c;随后到处找问题。 在本地部分&#xff0c;控制面板 ——>网络和Internet——>网络连接 &#xff0c; 可以看到 VMnet1和Vmnet8虽然都是已…

取证练习(一)PC+手机,服务器未完

链接&#xff1a;https://pan.baidu.com/s/1KlkPwzWm7dNO2iRGoTsE7Q?pwdxyxy 提取码&#xff1a;xyxy –来自百度网盘超级会员V3的分享 每道题5分&#xff0c;共计200 一、请检查窝点中的手机检材&#xff0c;回答以下问题 1、 该OPPO手机的IMEI是&#xff1a; A. 8603700…

Python爬虫的作用及工具和反爬机制,爬虫新手入门篇

文章目录 一 什么是爬虫二 爬虫工具三. 反爬虫问题Python爬虫技术资源分享1、Python所有方向的学习路线2、学习软件3、入门学习视频4、实战案例5、清华编程大佬出品《漫画看学Python》6、Python副业兼职与全职路线 一 什么是爬虫 爬虫能做什么 政治角逐 2016年这场美国总统竞…