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.rhkb.cn/news/225040.html

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

相关文章

零基础学Java第一天

1.什么是Java Java是一门编程语言 思考问题: 人和人沟通? 中文 英文 人和计算机沟通? 计算机语言: C C C# php python 2. Java诞生 前身叫Oak(橡树) 目前最流行的版本还是JDK8 3.Java三大平台体系 JavaSE&#xff08…

JSON在Java中的使用

目录 第一章、快速了解JSON1.1)JSON是什么1.2)json的语法格式①键值对、字符串、数字、布尔值、数组、对象②嵌套的格式 1.3)为什么使用JSON 第二章、发送和接收JSON格式数据2.1)postman发送JSON格式数据2.2)Java后端接…

单片机通用项目开源电路,源码

1.基础部分 等… 2.硬件应用 555芯片的应用 电路&#xff1a; 代码 /*************** writer:shopping.w ******************/ #include <reg52.h> #define uint unsigned int #define uchar unsigned charsbit Signal P1^0; sbit BEEP P3^7;void Delay(uint …

计算机网络简述

前言 计算机网路是一个很庞大的话题。在此我仅对其基础概述以及简单应用进行陈述。后续或有补充以形成完善的计算机网络知识体系。 一.计算机网络的定义 根据百度词条的描述&#xff0c;计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过…

linux系统和网络(四):网络

本文主要探讨linux网络相关知识,详细介绍看本博客其他博文。 网络基础(参考本博客其他文章&#xff1a;基础网络知识&#xff0c;socket网络编程&#xff0c;基于socket的聊天室和简易ftp) 路由器是局域网和外部网络通信出入口 DNS实现域名和IP地址之间转换 …

PSoc62™开发板之按键控制LED

实验目的 使用板子上的用户自定义按键控制LED亮灭&#xff0c;当按键按下时LED亮起来&#xff0c;不按下则不亮 电路图 按键电路 板子有两组按键&#xff0c;分别是系统复位按键和用户自定义按键&#xff0c;这里我们选择控制用户自定义按键&#xff0c;可以看到MCU_USER_B…

python 面试题第一弹

1. 如何理解Python中的深浅拷贝 浅拷贝&#xff08;Shallow Copy&#xff09;创建一个新的对象&#xff0c;该对象的内容是原始对象的引用。这意味着新对象与原始对象共享相同的内存地址&#xff0c;因此对于可变对象来说&#xff0c;如果修改了其中一个对象&#xff0c;另一个…

基于Python的新能源汽车销量分析与预测系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 基于Python的新能源汽车销量分析与预测系统是一个使用Python编程语言和Flask框架开发的系统。它可以帮助用户分析和预测新能源汽车的销量情况。该系统使用了关系数据库进行数据存储&#xff0c;并…

Netty组件基础

Netty入门简介 netty是一个异步、基于事件驱动的网络应用框架&#xff0c;用于快速开发可维护、高性能的网络服务器和客户端。 Netty优势 Netty解决了TCP传输问题&#xff0c;如黏包、半包问题&#xff0c;解决了epoll空轮询导致CPU100%的问题。并且Netty对API进行增强&#xf…

结构型模式 | 适配器模式

一、适配器模式 1、原理 适配器模式&#xff08;Adapter&#xff09;&#xff0c;将一个类的接口转换成客户希望的另外一个接口&#xff0c;使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式主要分为三类&#xff1a;类适配器模式、对象适配器模式、接口…

Redis源码精读:字符串

文章目录 前言代码位置核心类型SDS结构获取sds字符串的元数据的宏获取字符串长度重新设置sds长度创建字符串感悟最后 前言 Redis中实现了sds&#xff08;simple dynamic string&#xff09;这种字符串&#xff0c;它比c语言标准库的char*字符串更加实用 代码位置 src/sdc.h …

【算法题】11. 盛最多水的容器

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。…

如何配置TLSv1.2版本的ssl

1、tomcat配置TLSv1.2版本的ssl 如下图所示&#xff0c;打开tomcat\conf\server.xml文件&#xff0c;进行如下配置&#xff1a; 注意&#xff1a;需要将申请的tomcat版本的ssl认证文件&#xff0c;如server.jks存放到tomcat\conf\ssl_file\目录下。 <Connector port"1…

理解io/nio/netty

一、io io即input/output&#xff0c;输入和输出 1.1 分类 输入流、输出流&#xff08;按数据流向&#xff09; 字节流&#xff08;InputStream/OutputStream&#xff08;细分File/Buffered&#xff09;&#xff09;、字符流(Reader/Writer&#xff08;细分File/Buffered/pu…

FL Studio 21最新版本for mac 21.2.2.3470中文解锁版

FL Studio 21最新版本for mac 21.2.2.3470中文解锁版是最新强大的音乐制作工具。它可以与所有类型的音乐一起创作出令人惊叹的音乐。它提供了一个非常简单且用户友好的集成开发环境&#xff08;IDE&#xff09;来工作。这个完整的音乐工作站是由比利时公司 Image-Line 开发的。…

某音上很火的圣诞树分享

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 效果截图&#xff08;这里不给动态了&#xff0c;某音到处都是了&#xff09;&#xff1a; 源代码&#xff1a; <script src"…

在Android中使用Flow获取网络连接信息

在Android中使用Flow获取网络连接信息 如果你是一名Android开发者&#xff0c;你可能会对这个主题感到有趣。考虑到几乎每个应用程序都需要数据交换&#xff0c;例如刷新动态或上传/下载内容。而互联网连接对此至关重要。但是&#xff0c;当用户的设备离线时&#xff0c;数据如…

Flask+Mysql项目docker-compose部署(Pythondocker-compose详细步骤)

一、前言 环境&#xff1a; Linux、docker、docker-compose、python(Flask)、Mysql 简介&#xff1a; 简单使用Flask框架写的查询Mysql数据接口&#xff0c;使用docker部署&#xff0c;shell脚本启动 优势&#xff1a; 采用docker方式部署更加便于维护&#xff0c;更加简单快…

k8s实战之ELK日志管理

首先查看总体流程 首先创建namespace apiVersion: v1 kind: Namespace metadata:name: kube-logging 一、首先创建es.yaml --- apiVersion: v1 #kubernetes API版本,采用最新版本v1 kind: Service #资源类型定义为Service metadata: name: elasticsearch-logging # …

时间Date

你有没有思考过时间问题&#xff1a; 前端为什么可以直接看见时间格式的数据 后端怎么接受的数据&#xff0c;怎么处理的 一般来说&#xff1a;前端传输来数据都是时间格式的字符串&#xff0c;那么后端需要能够解析时间格式的字符串&#xff0c;归功于JSONFormat ,可以解析…