聊聊 Docker
聊聊 Docker
Docker 是什么?
定义
Docker 是一款 开源的应用容器引擎。
简单来说,就是 以容器虚拟化技术为基础的软件。可以把应用程序和所依赖的包一起打包到一个可移植的镜像中,发布到 Linux 或者 Windows 上运行。(代码 + 运行环境)
虚拟机与容器技术对比
虚拟机
虚拟机 可以高效使用计算机资源(比如可以解决同一种服务端口冲突、程序依赖版本库不同、进程受限制等问题) ,常见的虚拟机有: vmware、virtualbox 。
虚拟机的 底层原理 是基于 hypervisor(硬件抽象层) ,也叫 虚拟机监视器(VMM) 。
容器技术
是一种沙盒技术,相互之间不会有任何接口。将应用运行在容器中,容器之间隔离的。
容器技术更 关注应用本身,应用和所依赖环境的共享和复用。
Linux Container (简称 LXC),是一种内核轻量级的操作系统层虚拟化技术,容器化技术就是基于 LXC 实现的。
四个维度对比
由此可见,为什么容器技术会出现,为什么容器技术会那么流行,是因为虚拟机有痛点的,容器技术就是为了解决这些痛点而生的。而 Docker 就是容器化技术的代表。
Docker 的应用场景
Docker 的实现原理与优势
Docker 的技术架构
Docker 是由 dotCloud 公司于 2013 年推出的产品,用 GO 语言编写的。
Docker 有两种发行版本 ,分别是 CE (Community Edition,社区版)和 EE (Enterprise Edition,企业版)。
Docker 是 C/S 架构。客户端(docker cli,执行程序),通过命令行和 API 形式与守护进程(docker daemon,提供 Docker 服务)进行通讯。
举个具体的例子,在常见的虚拟机实现中,我们要搭建一套 LNMP 结构的服务,我们通常会建立一个虚拟机,在虚拟机中安装上 Linux 系统,之后分别安装 Nginx、MySQL 和 PHP。
而在 Docker 里,最佳的实践是分别基于 Nginx、MySQL 和 PHP 的镜像建立三个容器,分别运行 Nginx、MySQL 和 PHP ,而它们所在的虚拟操作系统也直接共享于宿主机的操作系统。
Docker 的实现原理
Linux 三大技术
Docker 的实现,主要归结于 Linux 的三大技术:命名空间(Namespaces)、控制组(Control Groups)和联合文件系统(Union FIle System)。
命名空间(Namespaces)
在编程语言中,命名空间的主要目的就是为了集合相同模块的类,区分不同模块间的同名类。
Linux 内核的命名空间,就是 能够将计算机资源进行切割划分,形成各自独立的空间。
如 User Namespace、Net Namespace、PID Namespace、Mount Namespace 等等。
利用 PID Namespace,Docker 就实现了容器中隔离程序运行中进程隔离这一目标。
控制组(Control Groups)
资源控制组的作用就是 控制计算机资源 。CGroups 主要做的是硬件资源的隔离。 除了资源的隔离,还有资源分配这个关键性的作用。
通过 CGroups,我们 可以指定任意一个隔离环境对任意资源的占用值或占用率 ,这对于很多分布式使用场景来说是非常有用的功能。
联合文件系统(Union FIle System)
一种能够 同时挂载不同实际文件或文件夹到同一目录,形成一种联合文件结构的文件系统。
Docker 用它解决虚拟环境对文件系统占用过量,实现虚拟环境快速启停等问题。
Docker 大幅减少了虚拟文件系统对物理存储空间的占用。(例子:Git,Git 中每进行一次提交,Git 并不是将我们所有的内容打包成一个版本,而只是将修改的部分进行记录,这样即使我们提交很多次后,代码库的空间占用也不会倍数增加)
Docker 的优势
- 应用的安全性、可移植性和节约成本;
- 让自动化部署更简单(持续集成CI和持续部署CD,快速交付);
- 加速应用架构现代化进程(如微服务架构);
- 充分利用服务器资源;
- 跨平台部署和动态伸缩(如使用K8s编排工具管理)。
Docker 的安装
macos 安装
安装教程:https://www.runoob.com/docker/macos-docker-install.html
windows 安装
安装教程:https://www.runoob.com/docker/windows-docker-install.html 或者
https://blog.58heshihu.com/index.php/archives/286/
Linux 安装
centos:https://www.runoob.com/docker/centos-docker-install.html
ubuntu:https://www.runoob.com/docker/ubuntu-docker-install.html
Docker 的四大核心组成
镜像(Image)
可以理解为 一个只读的文件包,其中包含了虚拟环境运行最原始文件系统的内容。
查看镜像列表:docker images
镜像命名格式:开发者 / 镜像名字:版本号
拉取: docker pull 镜像名称
搜索: docker search 镜像名称 //从docker hub搜索
镜像详细信息: docker inspect 镜像名称/ID
删除镜像: docker rmi 镜像名称/ID
容器(Container)
简介
在容器技术中, 容器就是用来隔离虚拟环境的基础设施,而在 docker 里,它也被引申为隔离出来的虚拟环境。
容器包括
- 一个 Docker 镜像
- 一个程序运行环境
- 一个指令集合
容器的生命周期
- Created:容器已经被创建,容器所需的相关资源已经准备就绪,但容器中的程序还未处于运行状态
- Running:容器正在运行,也就是容器中的应用正在运行
- Paused:容器已暂停,表示容器中的所有程序都处于暂停 ( 不是停止 ) 状态
- Stopped:容器处于停止状态,占用的资源和沙盒环境都依然存在,只是容器中的应用程序均已停止
- Deleted:容器已删除,相关占用的资源及存储在 Docker 中的管理信息也都已释放和移除
常用命令
查看正在运行的容器列表:docker ps
所有容器:docker ps -a
创建启动容器:docker run --name redis -d redis:5.0.15
停止容器:docker stop 容器名字/ID
启动/重启容器:docker start/restart 容器名字/ID
删除容器:docker rm [-f] //-f强制,可以删除正在运行的容器
进入容器:docker exec -it redis bash //容器内部是虚拟出来的一个Linux
查看容器报错信息:docker logs 容器ID
网络(Network)
容器网络 实质上也是由 Docker 为应用程序所创造的虚拟环境的一部分,它能让应用从宿主机操作系统的网络环境中独立出来,形成容器自有的网络设备、IP 协议栈、端口套接字、IP 路由表、防火墙等等与网络相关的模块。
-
沙盒(Sandbox)提供了容器的虚拟网络栈,也就是之前所提到的端口套接字、IP 路由表、防火墙等的内容。其实现隔离了容器网络与宿主机网络,形成了完全独立的容器网络环境
-
网络(Network)可以理解为 Docker 内部的虚拟子网,网络内的参与者相互可见并能够进行通讯。Docker 的这种虚拟网络也是于宿主机网络存在隔离关系的,其目的主要是形成容器间的安全通讯环境
-
端点(Endpoint)是位于容器或网络隔离墙之上的洞,其主要目的是形成一个可以控制的突破封闭的网络环境的出入口。当容器的端点与网络的端点形成配对后,就如同在这两者之间搭建了桥梁,便能够进行数据传输了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KuxNurAy-1692625431644)(http://flt-pan.58heshihu.com/blog/typecho/llkx21og.png)]
Docker 容器网络一共有 5 种网络驱动 ,网络驱动,分别是: Bridge Driver(网桥 默认)、Host Driver、Overlay Driver(集群)、MacLan Driver、None Driver。
容器之间以及宿主机与容器之间可以通过端口来进行访问。
常用命令
查看网络列表:docker network ls
容器加入网络:
docker run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes --network network_name mysql:5.7
docker run -d --name php --link mysql --network network_name php:latest
端口映射:
docker run -d --name nginx -p 8080:80 nginx:1.12 //80为容器的端口,8080可为宿主机或别的容器的端口
数据卷(Volume)
在 Docker 中,通过 bind mount、volume、tmpfs mount 这几种方式进行数据共享或持久化的文件或目录,我们都称为数据卷 (Volume)。
Docker 的数据卷一共 有 3 中挂载方式 ,分别是: Bind Mount、Volume、Tmpfs Mount
-
Bind Mount 能够直接将宿主操作系统中的目录和文件挂载到容器内的文件系统中,通过指定容器外的路径和容器内的路径,就可以形成挂载映射关系,在容器内外对文件的读写,都是相互可见的
-
Volume 也是从宿主操作系统中挂载目录到容器内,只不过这个挂载的目录由 Docker 进行管理,我们只需要指定容器内的目录,不需要关心具体挂载到了宿主操作系统中的哪里
-
Tmpfs Mount 支持挂载系统内存中的一部分到容器的文件系统里,不过由于内存和容器的特征,它的存储并不是持久的,其中的内容会随着容器的停止而消失
bind mount方式:
docker run -d --name nginx_test -v /nginx/html:/usr/share/nginx/html nginx
查看容器挂在文件:
docker exec nginx_test ls /usr/share/nginx/html
利器 docker-compose
docker-compose 是用于定义和运行多容器 Docker 应用程序的工具(集成部署),使用 docker-compose 可以高效管理容器。
使用步骤:
1、Dockerfile 定义应用程序的环境(定制自己的镜像源)
2、docker-compose.yml 定义构成应用程序的服务,多个容器一起执行
3、docker-compose up 启动并运行整个应用程序
备注:Linux需单独安装docker-compose,macos和windows已经集成
实战案例 - 搭建 LNMP 环境
源码下载: https://github.com/zhangdejian/docker_lnmp.git
请参考我的另外一篇博客: https://learnku.com/articles/39417 (Dockerfile 方式定制 lnmp 环境)
Docker 的不足
- 必须在64位机器上运行,目前仅支持x86_64和AMD64;
- 系统的Linux内核必须是3.8或者更新;
- 内核必须支持cgroups和命名空间;
- docker对disk的管理比较有限;
- 网络管理相对简单,主要是机遇namespace隔离;
6.container随着用户进程的停止而销毁,container中的log等用户数据不方便收集。
Docker 的学习资源
官网: https://docs.docker.com/engine/reference/run/
中文手册: https://docker_practice.gitee.io/zh-cn/basic_concept/image.html
菜鸟教程: https://www.runoob.com/docker/docker-tutorial.html
掘金社区: https://juejin.cn/tag/Docker
开源中国: https://www.oschina.net/question/tag/docker
SegmentFault: https://segmentfault.com/t/docker
推荐入门书籍: 《Docker 技术入门与实战》 、 《Docker 进阶与实战》华为团队
看云:《Docker — 从入门到实践》
优秀文章:
CentOS 安装 docker
Dockerfile 方式定制 lnmp 环境
Docker 搭建 Jenkins 实现自动部署
Docker+LNMP+Jenkins+ 码云实现 PHP 代码自动化部署
Docker 操作命令大全
相关文章:
聊聊 Docker
聊聊 Docker Docker 是什么? 定义 Docker 是一款 开源的应用容器引擎。 简单来说,就是 以容器虚拟化技术为基础的软件。可以把应用程序和所依赖的包一起打包到一个可移植的镜像中,发布到 Linux 或者 Windows 上运行。(代码 运…...
运行软件mfc140u.dll丢失怎么办?mfc140u.dll的三个修复方法
最近我在使用一款软件时遇到了一个问题,提示缺少mfc140u.dll文件。。这个文件是我在使用某个应用程序时所需要的,但是由于某种原因,它变得无法正常使用了。经过一番搜索和了解,我了解到mfc140u.dll是Microsoft Visual Studio 2015…...
神经网络基础-神经网络补充概念-54-softmax回归
概念 Softmax回归(Softmax Regression)是一种用于多分类任务的机器学习算法,特别是在神经网络中常用于输出层来进行分类。它是Logistic回归在多分类问题上的推广。 原理 Softmax回归的主要思想是将原始的线性分数(得分…...
米尔瑞萨RZ/G2L开发板-02 ffmpeg的使用和RTMP直播
最近不知道是不是熬夜太多,然后记忆力减退了? 因为板子回来以后我就迫不及待的试了一下板子,然后发现板子有SSH,但是并没有ffmpeg,最近总是在玩,然后今天说是把板子还原一下哇,然后把官方的固件…...
基于swing的在线考试系统java jsp线上试卷问答mysql源代码
本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于swing的在线考试系统 系统有2权限:管…...
C# 读取pcd点云文件数据
pcd文件有ascii 和二进制格式,ascii可以直接记事本打开,C#可以一行行读。但二进制格式的打开是乱码,如果尝试程序中读取,对比下看了数据也对不上。 这里可以使用pcl里的函数来读取pcd,无论二进制或ascii都可以正确读取…...
.NET CORE Api 上传excel解析并生成错误excel下载
写在前面的话: 【对外承接app API开发、网站建设、系统开发,有偿提供帮助,联系方式于文章最下方 】 因业务调整,不再需要生成错误无excel下载,所以先保存代码,回头再重新编辑 #region Excel校验部分if (f…...
数据结构,二叉树,前中后序遍历
二叉树的种类 最优二叉树 最优二叉树画法 排序取最小两个值和,得到新值加入排序重复1,2 前序、中序和后序遍历是树形数据结构(如二叉树)中常用的遍历方式,用于按照特定顺序遍历树的节点。这些遍历方式在不同应用中有不…...
项目实战笔记2:硬技能(上)
序: 本节串讲了项目管理硬技能,有些术语可以结合书或者网上资料来理解。没有想书上讲的那样一一列举。 做计划 首先强调为什么做计划? 计划就是各个角色协同工作的基准(后面做风险监控、进度的监控),贯穿于…...
神经网络基础-神经网络补充概念-59-padding
概念 在深度学习中,“padding”(填充)通常是指在卷积神经网络(Convolutional Neural Networks,CNNs)等神经网络层中,在输入数据的周围添加额外的元素(通常是零)…...
【开源免费】ChatGPT-Java版SDK重磅更新收获2.3k,支持插件模式、实现ChatGpt联网操作。
everybody 七夕来了还单着么? 一、简介 ChatGPT Java版SDK开源地址:https://github.com/Grt1228/chatgpt-java,目前收获将近2200个star🌟。 最新版:1.1.1-beta0 <dependency><groupId>com.unfbx</g…...
情报与GPT技术大幅降低鱼叉攻击成本
邮件鱼叉攻击(spear phishing attack)是一种高度定制化的网络诈骗手段,攻击者通常假装是受害人所熟知的公司或组织发送电子邮件,以骗取受害人的个人信息或企业机密。 以往邮件鱼叉攻击需要花费较多的时间去采集情报、深入了解受…...
Swift 周报 第三十五期
文章目录 前言新闻和社区五天市值蒸发 2000 亿美元,苹果公司怎么了?在你的 App 中帮助顾客解决账单问题需要声明原因的 API 列表现已推出 提案通过的提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组整理周报的第三十五…...
uni-app + SpringBoot +stomp 支持websocket 打包app
文章目录 一、概述:二、配置:1. 后端配置2. uni-app(app端)3. 使用 一、概述: websocket 协议是在http 协议的基础上的升级,通过一次http 请求建立长连接,转而变为TCP 的全双工通信;而http 协议是一问一答…...
LeetCode--HOT100题(35)
目录 题目描述:23. 合并 K 个升序链表(困难)题目接口解题思路1代码解题思路2代码 PS: 题目描述:23. 合并 K 个升序链表(困难) 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合…...
idea插件grep console最佳实践
首发博客地址 https://blog.zysicyj.top/ 参考博客:https://blog.csdn.net/ayunnuo/article/details/123997304 效果 配置 具体颜色 日志级别前景色背景色Error#FF0000#370000Warn#FFC033#1A0037Info#00FFF3无Debug#808080无 本文由 mdnice 多平台发布...
Android 12 源码分析 —— 应用层 二(SystemUI大体组织和启动过程)
Android 12 源码分析 —— 应用层 二(SystemUI大体组织和启动过程) 在前一篇文章中,我们介绍了SystemUI怎么使用IDE进行编辑和调试。这是分析SystemUI的最基础,希望读者能尽量掌握。 本篇文章,将会介绍SystemUI的大概…...
【C#】通用类型转换
【C#】通用类型转换 自动类型转换(隐式类型转换)强制类型转换(显式类型转换)通过函数进行转换(通过方法进行类型转换)使用 as 操作符转换通用类型转换方法实现 数据类型转换就是将数据(变量、数…...
传统DNS、负载均衡服务发现框架与专业服务发现框架(Eurek、nacos)分析
1、DNS 服务器 DNS 服务器可以在一定程度上用作服务发现的机制,以下是其冲动服务发现的一些利弊 优势 广泛性: DNS是互联网的标准协议之一,已经广泛地被支持和使用。因此,使用DNS作为服务发现的机制可以借助现有的网络基础设施…...
js中数组常用操作函数
js数组经常会用到,当涉及到 JavaScript 数组的函数,有许多常用的函数可用于对数组进行操作和转换。以下是一些常见的数组函数的讲解 splice() splice() 函数用于修改数组,可以删除、插入或替换数组中的元素。 var fruits [apple, banana,…...
Windows、Mac、Linux端口占用解决
Windows、Mac、Linux端口占用解决 简介 在使用计算机网络时,经常会遇到端口被占用的问题。当一个应用程序尝试使用已经被其他程序占用的端口时,会导致端口冲突,使应用程序无法正常运行。本文将介绍在Windows、Mac和Linux操作系统上解决端口…...
企业文件透明加密软件——「天锐绿盾」数据防泄密管理软件系统
PC访问地址: 首页 一、文档透明加密软件 文档透明加密功能:在不影响单位内部员工对电脑任何正常操作的前提下,文档在复制、新建、修改时被系统强制自动加密。文档只能在单位内部电脑上正常使用,在外部电脑上使用是乱码或无法打…...
Postman接口自动化测试实例
一.实例背景 在实际业务中,经常会出现让用户输入用户密码进行验证的场景。而为了安全,一般都会先请求后台服务器获取一个随机数做为盐值,然后将盐值和用户输入的密码通过前端的加密算法生成加密后串传给后台服务器,后台服务器接到…...
软件团队降本增效-构建人员评价体系
在软件团队中,最大成本往往来自于人力。这是因为软件开发是一项高度技术密集和智力密集的工作,需要研发人员具备较高的专业知识和技能。研发人员的工作状态和主动性对产出和质量具有极大的影响。如果研发人员缺乏积极性和投入度,可能会导致项…...
Python实现SSA智能麻雀搜索算法优化随机森林分类模型(RandomForestClassifier算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法,在2020年提出&a…...
web JS高德地图标点、点聚合、自定义图标、自定义窗体信息、换肤等功能实现和高复用性组件封装教程
文章目录 前言一、点聚合是什么?二、开发前准备三、API示例1.引入高德地图2.创建地图实例3.添加标点4.删除标点5.删除所有标点(覆盖物)6.聚合点7.自定义聚合点样式8.清除聚合9.打开窗体信息 四、实战开发需求要求效果图如下:封装思…...
AlpacaFarm: A Simulation Framework for Methods that Learn from Human Feedback
本文是LLM系列文章,针对《》的翻译。 AlpacaFarm:从人类反馈中学习方法的模拟框架 摘要1 引言2 背景与问题描述3 构造AlpacaFarm4 验证AlpacaFarm模拟器5 AlpacaFarm的基准参考方法6 相关工作7 不足和未来方向 摘要 像ChatGPT这样的大型语言模型由于能够很好地遵循…...
【Linux】Linux工具篇(yum、vim、gcc/g++、gdb、Makefile、git)
🚀 作者简介:一名在后端领域学习,并渴望能够学有所成的追梦人。 🚁 个人主页:不 良 🔥 系列专栏:🛹Linux 🛸C 📕 学习格言:博观而约取ÿ…...
自己实现 SpringMVC 底层机制 系列之-实现任务阶段 5- 完成 Spring 容器对象的自动装配 -@Autowried
😀前言 自己实现 SpringMVC 底层机制 系列之-实现任务阶段 5- 完成 Spring 容器对象的自动装配 -Autowried 🏠个人主页:尘觉主页 🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家&…...
linux的http服务
Web通信基本概念 基于B/S(Browser/Server)架构的网页服务 服务端提供网页 浏览器下载并显示网页 Hyper Text Markup Lanuage,超文本标记语言 Hyper Text Transfer Protocol,超文本传输协议 虚拟机A:构建基本的Web服务 [root…...
Restful架构简单了解
Restful Rest全称representational status transfer 表述性状态转移。 原则 资源与URI URI既可以看成是资源的地址,也可以看成是资源的名称。如果某些信息没有使用URI来表示,那它就不能算是一个资源, 只能算是资源的一些信息而已。URI的设计…...
conda常用命令
使用conda可以在电脑上创建很多套相互隔离的Python环境,命令如下: 创建环境 创建一个名为deeplearning的环境,python版本为3.7 conda create --name deeplearning python3.7查看版本 conda --version切换环境 切换到deeplearning环境 c…...
Linux:shell脚本:基础使用(6)《正则表达式-awk工具》
简介 awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 awk处理过程: 依次对每一行进行处理,然后输出 1)awk命令会逐行读取文件的内容进行处理 2)a…...
国际阿里云腾讯云:阿里云服务器怎么打包
近年来,跟着云计算的发展,越来越多的人开始运用云服务器来保管自己的运用和网站。其间,阿里云服务器是国内最大的云计算服务供给商之一,能够供给高效安稳的服务器服务。可是,阿里云服务器的打包办法相较于其他云服务器…...
FPGA中锁存器(latch)、触发器(flip-flop)以及寄存器(register)详解
文章目录 1 定义1.1 锁存器(latch)1.2 触发器(flip-flop)1.3 寄存器(register) 2 比较2.1 锁存器(Latch)危害即产生原因2.2 寄存器和锁存器的区别2.3 锁存器和触发器的区别 3 结构3.…...
【正点原子STM32连载】第十八章 通用定时器PWM输出实验 摘自【正点原子】APM32F407最小系统板使用指南
1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html# 第十…...
分类预测 | MATLAB实现BWO-TCN-Attention数据分类预测
分类预测 | MATLAB实现BWO-TCN-Attention数据分类预测 目录 分类预测 | MATLAB实现BWO-TCN-Attention数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.BWO-TCN-Attention数据分类预测程序; 2.无Attention适用于MATLAB 2022b版及以上版本…...
6.链路追踪-Zipkin
链路追踪(Distributed Tracing)是一种用于监视分布式应用程序的技术,通过收集和展示分布式系统中不同组件之间的调用和交互情况,帮助开发人员和运维团队理解系统中的请求流程、性能瓶颈和异常情况。 1.Zipkin Zipkin 是一个开源的…...
基于ACF,AMDF算法的语音编码matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .......................................................................... plotFlag …...
python 基础篇 day 1 初识变量和数据类型
文章目录 变量变量作用——用于存储和表示数据。变量命名规则命名法大驼峰小驼峰下划体n j i a x 通常作为临时变量使用 建议 变量种类全局变量(Global Variables)局部变量(Local Variables)静态变量(Static Variables…...
Window下部署使用Stable Diffusion AI开源项目绘图
Window下部署使用Stable Diffusion AI开源项目绘图 前言前提条件相关介绍Stable Diffusion AI绘图下载项目环境要求环境下载运行项目打开网址,即可体验文字生成图像(txt2img)庐山瀑布 参考 本文里面的风景图,均由Stable Diffusion…...
【MySQL】好好学习一下InnoDB中的页
文章目录 一. 前言二. 从宏观层面看页三. 页的基本内容3.1 页的数据结构3.2 用户空间内的数据行结构3.3 页目录 四. 问题集4.1 索引 和 数据页 有什么区别4.2 页的大小是什么决定的4.3 页的大小对哪些情况有影响4.4 一般情况下说的链表有哪几个4.5 如果页的空间满了怎么办4.6 如…...
git开发常用命令
版本回退 soft:git reset --soft HEAD^ 将版本库回退一个版本,且这次提交的所有文件都移动到暂存区 mixed(默认):git reset HEAD^ 将版本库回退一个版本,且这次提交的所有文件都移动到工作区,会…...
WEB APIs day5
一、window对象 BOM属于window对象 1.BOM(浏览器对象模型) bom里面包含着dom,只不过bom我们平时用得比较少,我们经常使用的是dom操作,因为我们页面中的这些标签都是在dom中取的,所以我们操作dom多一点。 window对象…...
html动态爱心代码【一】(附源码)
前言 七夕马上就要到了,为了帮助大家高效表白,下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐,可用于520,情人节,生日,表白等场景,可直接使用。 效果演示 文案修改 var loverNam…...
【仿写tomcat】六、解析xml文件配置端口、线程池核心参数
线程池改造 上一篇文章中我们用了Excutors创建了线程,这里我们将它改造成包含所有线程池核心参数的形式。 package com.tomcatServer.http;import java.util.concurrent.*;/*** 线程池跑龙套** author ez4sterben* date 2023/08/05*/ public class ThreadPool {pr…...
Android Studio 接入OpenCV最简单的例子 : 实现灰度图效果
1. 前言 上文 我们在Windows电脑上实现了人脸功能,接下来我们要把人脸识别的功能移植到Android上。 那么首先第一步,就是要创建一个Native的Android项目,并且配置好OpenGL,并能够调用成功。 这里我们使用的是openCV-4.8.0&#x…...
(1)、扩展SpringCache一站式解决缓存击穿,穿透,雪崩
1、问题描述 我们在使用SpringCache的@Cacheable注解时,发现并没有设置过期时间这个功能。 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @I...
Rancher使用cert-manager安装报错解决
报错: rancher-rke-01:~/rke/rancher-helm/rancher # helm install rancher rancher-stable/rancher --namespace cattle-system --set hostnamewww.rancher.local Error: INSTALLATION FAILED: Internal error occurred: failed calling webhook "webhook…...
Harvard transformer NLP 模型 openNMT 简介入门
项目网址: OpenNMT - Open-Source Neural Machine Translation logo: 一,从应用的层面先跑通 Harvard transformer GitHub - harvardnlp/annotated-transformer: An annotated implementation of the Transformer paper. git clone https…...