docker网络
Docker安装时会自动在 host 上创建三个网络,none、host、bridge我们可用docker network ls命令查看。
一、Docker网络架构Docker在1.9版本中引入了一整套的docker network子命令和跨主机网络支持。这允许用户可以根据他们应用的拓扑结构创建虚拟网络并将容器接人其所对应的网络。其实,早在Docker1.7版本中,网络部分代码就已经被抽离并单独成为了Docker的网络库,即libnetwork。在此之后,容器的网络模式也被抽象变成了统一接口的驱动。
为了标准化网络驱动的开发步骤和支持多种网络驱动,Docker公司在libnetwork中使用了CNM ( Container Network Model )。CNM定义了构建容器虚拟化网络的模型,同时还提供了可以用于开发多种网络驱动的标准化接口和组件。
libnetwork和Docker daemon和各个网络驱动关系:
Docker daemon通过调用libnetwork对外提供的API完成网络的创建和管理等功能。libnetwork中则使用了CNM来完成网络功能的提供。而CNM中 ...
docker基础
一、容器容器解决的问题开发人员通常使用多种服务(比如MQ、Cache、DB)构建和组装应用,而且可能会部署到不同环境。
应用包含多种服务,这些服务有自己所依赖的库和软件包
存在多部署环境,服务在运行时可能需要动态迁移到不同环境中,开发环境->测试环境->生产环境。
容器的优势对于开发人员:Build Once、Run Anywhere。容器意味着环境隔离和可重复性。开发人员只需为应用创建一次运行环境,然后打包成容器便可在其他机器上运行。另外,容器环境与所在的 Host 环境是隔离的,就像虚拟机一样,但更快更简单。
对于运维人员:Configure Once、Run Anything。只需要配置好标准的runtime环境,服务器就可以运行任何容器。这使得运维人员的工作变得更高效、一致和可重复。容器消除了开发、测试、生产环境的不一致性。
二、Docker概念docker架构Docker 采用的是 Client/Server架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端也可以通过socket或RESTAPI与 ...
云原生
一、什么是云原生原生指用任意编程语言开发的应用,这些应用叫原生应用,这些应用最终会部署到一个地方,这个地方可以是云。云原生就是原生应用上云的过程,并且一系列解决方案。
二、云平台云平台是相对于本地而言的,一个应用制作完成后需要放到服务器中运行。这个平台就是云平台
1、公有云
购买云服务商提供的公共服务器
公有云是最常见的云计算部署类型。公有云资源(例如服务器和存储空间)由第三方云服务提供商拥有和运营,这些资源通过 Internet 提供。在公有云中,所有硬件、软件和其他支持性基础结构均为云提供商所拥有和管理。Microsoft Azure 是公有云的一个示例。
在公有云中,你与其他组织或云“租户”共享相同的硬件、存储和网络设备,并且你可以使用 Web 浏览器访问服务和管理帐户。公有云部署通常用于提供基于 Web 的电子邮件、网上办公应用、存储以及测试和开发环境。
公有云优势:
成本更低:无需购买硬件或软件,仅对使用的服务付费。
无需维护:维护由服务提供商提供。
近乎无限制的缩放性:提供按需资源,可满足业务需求。
高可靠性:具备众多服务器,确保免受故障影响。
可用性: N个 ...
正则表达式
一、什么是正则表达式模式模板(pattern template),用它来过滤文本。如果数据匹配模式,它就会被接受并进一步处理;如果数据不匹配模式,它就会被滤掉。
正则表达式是通过正则表达式引擎(regular expression engine)实现的。在Linux中,有两种流行的正则表达式引擎:
POSIX基础正则表达式(basic regular expression,BRE)引擎
POSIX扩展正则表达式(extended regular expression,ERE)引擎
POSIX BRE引擎通常出现在依赖正则表达式进行文本过滤的编程语言中。它为常见模式提供了高级模式符号和特殊符号,比如匹配数字、单词以及按字母排序的字符。
BRE 模式1.纯文本正则表达式模式都区分大小写。这意味着它们只会匹配大小写也相符的模式。完整的正则表达式文本并未在数据流中出现,因此匹配失败,sed编辑器不会显示任何文本。
12$ echo "The books are expensive" | sed -n '/book/p' The books are e ...
Linux文本处理
一、初识sed和gawk文本处理1.sed 编辑器流编辑器(stream editor),流编辑器则会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。sed编辑器可以根据命令来处理数据流中的数据
(1) 一次从输入中读取一行数据。
(2) 根据所提供的编辑器命令匹配数据。
(3) 按照命令修改流中的数据。
(4) 将新的数据输出到STDOUT。
在流编辑器将所有命令与一行数据匹配完毕后,它会读取下一行数据并重复这个过程。
1sed options script file
选 项
描 述
-e script
在处理输入时,将script中指定的命令添加到已有的命令中
-f file
在处理输入时,将file中指定的命令添加到已有的命令中
-n
不产生命令输出,使用print命令来完成输出
script参数指定了应用于流数据上的单个命令。如果需要用多个命令,要么使用-e选项在命令行中指定,要么使用-f选项在单独的文件中指定。有大量的命令可用来处理数据。
在命令行定义编辑器命令
123456$ echo "This is a test" ...
shell脚本
查找可执行文件当从命令行中运行一个程序的时候,Linux系统会搜索一系列目录来查找对应的文件。这些目录被定义在环境变量PATH中。如果你想找出系统中有哪些可执行文件可供使用,只需要扫描PATH环境变量中所有的目录就行了。
1234567891011121314151617#!/bin/bash # finding files in the PATH # 首先是创建一个for循环,对环境变量PATH中的目录进行迭代。处理的时候别忘了设置IFS分隔符。IFS=: for folder in $PATH do echo "$folder:" #以使用另一个for循环来迭代特定目录中的所有文件 for file in $folder/* do #检查各个文件是否具有可执行权限 if [ -x $file ] then echo " $file" fi done done
运行这段代码时,会得到一个可以在命令行中使用的可执行文件的列表。
输出显示了在环 ...
shell脚本编程基础
一、构建基本脚本创建shell基本文件的第一行指定要使用的shell
1#!/bin/bash
写好一个文件之后需要执行,但是必须要让shell找到脚本
将shell脚本文件所处的目录添加到PATH环境变量中;
在提示符中用绝对或相对文件路径来引用shell脚本文件。
显示消息果在echo命令后面加上了一个字符串,该命令就能显示出这个文本字符串。
默认情况下,不需要使用引号将要显示的文本字符串划定出来。echo命令可用单引号或双引号来划定文本字符串。需要在文本中使用其中一种引号,而用另外一种来将字符串划定起来。
1echo "This is a test to see if you're paying attention"
如果想把文本字符串和命令输出显示在同一行中,用echo语句的-n参数。
12echo -n "The time and date are: "date
使用变量环境变量以在环境变量名称之前加上美元符($)来使用这些环境变量。
1234echo "User info for userid: $USE ...
Linux命令行
基于Linux命令行与shell脚本编程大全(第3版)
一、初识Linux shellLinux系统分为4个部分:
Linux内核
GNU工具
图形化桌面环境
应用软件
Linux内核内核控制计算机系统上所有硬件和软件。主要有四个功能
系统内存管理:管理服务器可用的物理内存,并且可以创建和管理虚拟内存。内核通过硬盘上的存储空间实现虚拟内存,这块区域称为交换空间。内核不断地在交换空间和实际物理内存之间反复交换虚拟内存的内容,使它拥有比物理内存更多的可用内存。
内存分成很多块,称为页面。内核将每个内存页面放在物理内存或交换空间。然后,内核会维护一个内存页面表,指明哪些页面位于物理内存中,哪些页面被交换到了磁盘上。内核会记录哪些内存页面正在使用中,并自动把一段时间未访问的内存页面复制到交换空间区域(称为换出)——即使还有可用内存。当程序要访问一个已被换出的内存页面时,内核必须从物理内存换出另外一个内存页面给它让出空间,然后从交换空间换入请求的内存页面。
软件程序管理:Linux将运行的程序称为进程。内核创建了第一个进程(称为init进程)来启动系统上所有其他进程。当内核启 ...
SCSS
相关介绍CSS预处理器出现的原因
无法嵌套书写导致代码繁重、冗杂、逻辑混乱。
没有变量和样式复用机制,属性值只能以字面量的形式重复输出。
12345# 总结:代码复用性低;不易于维护# 注:现在,现在的CSS是可以定义变量的!!!:root{ --red: #f3e1e1}
出名的CSS预处理器介绍1. SCSS/SASSSASS (.scss)。于2007年诞生,最早也是最成熟的CSS预处理器,拥有ruby社区的支持和compass这一最强大的css框架,目前受LESS影响,已经进化到了全面兼容CSS的SCSS。
2. LESSLESS (.less)。于2009年诞生,借鉴了SASS的长处,并兼容了CSS语法,使得开发者使用起来更为方便顺手,但是相比于SASS,其编程功能不够丰富,反而促使SASS进化成为了SCSS。
3. StylusStylus (.styl)。于2010年诞生,出自Node.js社区,主要用来给Node项目进行CSS预处理支持,人气较前两者偏低。
SCSS和SASS之间的关系简而言之:
1234567Sass有两套语法:1.第一种 ...
axios
一、axios介绍json-server介绍github: https://github.com/typicode/json-server
1npm install -g json-server
用来快速搭建 REST API 的工具包
axiosgithub: https://github.com/axios/axios
运行在浏览器和node.js,用于发送Ajax请求
1234axios.get('http://localhost:3000/posts?title=json-server&author=typicode');axios.post('http://localhost:3000/posts', {title: 'xxx', author: 'yyyy'}) // 保存数据axios.put('http://localhost:3000/comments/2', {body: 'yyy', postI d: 2 ...