docker学习笔记
docker 简介
docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux服务器,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类iphone的app),并且容器开销极其低。(底层使用LXC实现)
docker 架构
docker安装
菜鸟中有完整的安装教程
Ubuntu Docker 安装 | 菜鸟教程 (runoob.com)
安装完配置镜像加速
Docker 镜像加速 | 菜鸟教程 (runoob.com)
docker 使用一个简单示例docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ mysql
解读:
docker run: 创建并运行一个容器,-d是让容器在后台运行
--name mysql: 给容器起一个名字
-p 3306:3306: 设置端口映射 ( ...
MySQL
学习视频:https://www.bilibili.com/video/BV1Kr4y1i7ru/
数据库就是存放数据的仓库,负责存储、管理和检索数据。
学习要求:
能根据业务场景独立设计库表
熟练编写 SQL 语句
基础篇MySQL概述数据库相关概念
名称
解释
简称
数据库
保存有组织的数据的容器(通常是一个文件或一组文件)
DataBase(DB)
数据库管理系统
操纵和管理数据库的大型软件
DataBase Management System(DBMS)
SQL
操作关系型数据库,定义了一套操作关系型数据库的统一标准
Structured Query Language(SQL)
通常用‘数据库’来指代数据库管理系统,这是不对的。
什么是关系型数据库?
关系型数据库是依据关系模型来创建的数据库,简单来说关系就是二维表格。
MySQL的安装MySQL官方提供两个版本:
社区版(MySQL Community Server)
商业版(MySQL Enterprise Edition)
免费,MySQL不提供任何技术支持
收费,官方提供技术支持 ...
高性能云计算复习
并行计算概述什么是并行计算?并行计算(Parallel Computing),同义词:高性能计算(High Performance Computing)、超级计算(Super Computing)
在并行机上,将一个应用分解成多个子任务,分配给不同的处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加速求解速度,或者求解应用问题。
基本条件
硬件(并行机):
并行机至少包含两台或两台以上处理机,这些处理机通过互连网络相互连接,相互通信。
并行算法设计:
也就是说,应用可以分解为多个子任务,这些子任务可以并行地执行。将一个应用分解为多个子任务的过程,称为并行算法的设计。
并行编程环境:
在并行机提供的并行编程环境上,具体实现并行算法,编制并行程序,并运行该程序,从而达到并行求解应用问题的目的。
主要目标
提高求解速度:
例如,在单处理器上,串行执行需要2 个星期(14 天),借助并行计算,使用100 台处理器,加速50 倍,将执行时间缩短为6.72 个小时。
扩大问题规模:
例如,在单处理器上,受内存资源2GB的限制,只能计算10 万个网格,也可以借助并行计算, ...
软件工程复习
软件与软件工程介绍软件的概念、特性和分类
软件的概念:软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及其相关文档的完整集合
程序:程序是按事先设计的功能和性能要求执行的指令序
列;
数据:数据是使程序能够正确地处理信息的数据结构;
相关文档:文档是与程序开发、维护和使用有关的图
文材料。
软件的特性
形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性
软件的分类
系统软件、支撑软件(工具软件)、应用软件、可复用软件
软件危机
20世纪60年代,计算机已经应用在很多行业,解决问题的规模及难度逐渐增加,由于软件本身的特点及软件开发方法等多方面问题,软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难,导致20世纪60 年代末软件危机的爆发。
除去软件本身的特点外,软件危机的原因还有以下几点:
缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。
软件人员与用户的交流存在障碍,除了知识背景的差异,缺少合适的交流方法及需求描述工具也是 ...
为Typora大纲与标题配置序号
步骤
进入Typora主题文件根目录
新建文件base.user.css,复制下面内容
/* Path: base.user.css *//* 侧边目录添加编号 二级标题开始*/.sidebar-content { counter-reset: h2 } .outline-h2 { counter-reset: h3 } .outline-h3 { counter-reset: h4 } .outline-h4 { counter-reset: h5 } .outline-h5 { counter-reset: h6 } .outline-h2>.outline-item>.outline-label:before { counter-increment: h2; content: counter(h2) " " } ...
Windows杀死占用端口的进程
查找端口占用打开cmd输入下面指令
netstat -aon|findstr "8081"
netstat -aon 是一个 Windows 命令行命令,用于显示当前系统中所有活动的网络连接和监听端口,并列出与每个连接相关的进程 ID(PID)。
| 是管道符号,用于将一个命令的输出传递给另一个命令进行处理。
findstr "8081" 是一个 Windows 命令行命令,用于在文本中查找包含指定字符串(这里是 “8081”)的行,并将这些行输出到命令行窗口。
结束进程taskkill /T /F /PID 8081
/T 参数表示终止指定进程及其所有子进程。
/F 参数表示强制终止进程,而不显示终止确认提示。
/PID 8081 参数指定要终止的进程的 PID。
Windows使用右键新建与使用模版
当我们在日常写作和博客撰写中使用模板和右键新建功能时,可以极大地提高创建和组织文章内容的效率。然而,许多网上的教程可能会让这个过程显得比较繁琐。在本文中,我将分享一个简单的方法,可以轻松地使用右键新建.md文件并指定模板。这个方法同样适用于创建其他类型的文件。接下来,我将介绍如何利用这两个功能来快速撰写博客文章。
!!!请注意,下面注册表编辑器的设置将影响到系统中所有的 .md 文件。确保在进行修改之前,备份注册表或者只对特定用户进行修改,以避免不必要的问题。
右键添加新建Markdown选项
桌面新建个txt文件
复制下面内容到新建的文件中
Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\.md]@="Typora.exe"[HKEY_CLASSES_ROOT\.md\ShellNew]"NullFile"=""[HKEY_CLASSES_ROOT\Typore.exe]@="Markdown"
解释:
[HKEY_CLASSES ...
栈与队列
栈栈的基本概念栈是一种特殊的线性结构,总在栈尾处增加(push)或删除(pop)元素,是典型的LIFO数据结构。
在Java中的使用 在java中栈是Vector的一个子类,正是由于这个原因Stack继承了Vector的所有方法,并可以在任意位置添加或删除元素。这种能力无疑是破坏了栈这种数据结构的封装性。由于这种原因官方推荐使用Deque(双端队列)接口来代替栈的功能,但是双端队列可以双端操作,还是会破坏栈这种数据结构的封装性。但是这是历史遗留问题。现在工程中可以自己封装一个真正的栈来使用。
操作
成功
失败
push
void
void
pop
栈顶元素
NoSuchElementException
peek
栈顶元素
空返回null
// 1. 初始化队列Deque<Integer> stack = new ArrayDeque<>();// 2. 入栈stack.push(1);// 3. 查看栈顶元素System.out.println(stack.peek());// 4. 出栈System.out.println(s ...
git速查手册
信息配置# 查看全部配置信息git config --list# 查看仓库配置信息git config --local --list# 查看系统信息配置git config --system --list# 查看用户信息配置git config --global --list# 退出q# 查看某个配置信息git config user.name# 用户级别-信息配置(配置用户名)git config --global user.name "hu1hu"# 用户级别-删除配置信息git config --global --unset user.name
注意事项:
以linux系统为例,系统信息全部用户通用,用户信息用户内通用(如root用户),仓库信息作用于一个仓库内。
若出现多条相同的配置信息,采用最后一条,采用范围最小的一条。
git配置是键值对的形式,同一级别同一个配置信息会覆盖原有的信息。
查看信息时,如果没有指定级别,则从local->global->system 向上找直到找到或没有
删除信息时,如果没有指定级别,则从local-> ...
linux常用指令
linux的目录结构
/,根目录是最顶级的目录了
/bin,bin是Binaries(二进制文件)的缩写,这个目录存放着最经常使用的命令
/dev,dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc,etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home,用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/lib,lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/mnt,系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/opt,opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录 ...