Clay 的技术空间

用进废退 | 艺不压身

系统环境

1
2
CentOS Linux release 7.6.1810 (Core)
Linux 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

临时更改最大打开文件描述符数

1
2
3
4
5
# 查看限制
# ulimit -n

# 临时更改限制(系统重启失效)
# ulimit -n 1048576
阅读全文 »

Git 的四个工作区域

ad

创建远程库与本地库

1
2
3
4
5
# 登录Github的Web页面创建远程库,并记录如下的远程库地址
# https://github.com/xxxx/remote-test.git

# 创建本地库,建议本地库的名称与远程库的名称一致
$ git init remote-test
阅读全文 »

前言

容器在运行期间产生的数据不会写在镜像里面,重新用此镜像创建并启动新的容器就会初始化镜像,加一个全新的容器可写层来保存数据。生产环境中使用 Docker 的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,Docker 提供数据卷和数据卷容器来解决;另外还可以通过 commit 提交一个新的镜像来保存产生的数据,也可以通过 “docker cp” 命令在宿主机与容器之间互相拷贝数据文件。

容器中管理数据主要的两种方式

数据卷(Data Volumes):容器内数据直接映射到本地主机环境。
数据卷容器(Data Volume Containers):使用特定容器维护数据卷。

阅读全文 »

Docker 镜像

镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,包含运行某个软件所需的所有内容,其中包括代码、运行时、库、环境变量、配置文件。

Docker 的 Base 镜像

Base 镜像从 scratch 构建,不依赖其他镜像,可作为其他应用镜像的父镜像;其他应用镜像可以在此基础进行扩展,Base 镜像通常都是各种 Linux 发行版的 Docker 镜像,比如 Ubuntu、Debian、CentOS 等。

阅读全文 »

Git 显示提交的日志信息(本地库)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 查看所有分支的所有操作的日志信息(包括commit和reset的操作),一般用于数据恢复
$ git reflog

# 显示每条提交日志信息的详细内容
$ git log

# 显示每条提交日志信息的详细内容,包括reflog的日志信息
$ git log -g

# 显示每条提交日志信息更详细的内容
$ git log --pretty=raw

# 将每条提交日志信息输出为一行显示
$ git log --pretty=oneline

# 将每条提交日志信息的摘要内容输出为一行显示
$ git log --oneline

# 将每条提交日志信息的摘要内容输出为一行显示,并指定显示多少条日志
$ git log --oneline -2

# 指定从第几条日志信息开始显示,例如从第三条日志信息开始显示
$ git log --skip 2

# 显示每条提交日志信息的详细内容,包含每次提交对应的文件操作类型(增删改)
$ git log --name-status

# 显示每条提交日志信息的详细内容,包含文件详细的改动记录
$ git log -p

# 绘制提交的线索图
$ git log --graph
阅读全文 »

2018-12-20(截止)

  • 实现博客加密访问限制
  • 基于谷歌、百度的 SEO 优化
  • 添加 404 页面、博客版权声明
  • 博客使用唯一的短字符串作为链接地址(URL)
  • 显示站点的总访问量、每篇博客的阅读量统计与字数统计
  • 基于 Linux + Gitolite + GitHooks + Shell 脚本自主实现 Hexo 的持续部署与博客备份
  • . . . . . .
阅读全文 »

配置跨域

下述的 add_header 末尾都可以加上了 always,它表示不管 HTTP 返回状态码是多少都会使 add_header 生效,有些时候服务端可能会返回 4XX 的 HTTP 状态码,这时候如果少了 always 会导致 add_header 失效,从而导致浏览器报跨域错误。

1
2
3
4
5
6
7
8
9
10
11
12
location / {
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
add_header 'Access-Control-Allow-Methods' 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Origin' always;

if ($request_method = 'OPTIONS') {
return 204;
}

...
}
阅读全文 »

Docker 新建并启动容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 语法
# docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

# 新建并以交互式启动centos容器,并为容器重新分配一个伪输入终端,同时指定容器名称
# docker run -it --name="centos" centos /bin/bash

# 新建并后台启动centos容器,如果启动后的容器内部没有前台运行的进程,容器默认会马上停止
# docker run -d centos

# 参数OPTIONS
# --name="new-name" 或者 --name new-name:为容器指定一个名称,该名称会在执行"docker ps"的时候显示出来
# -d:后台启动容器,并返回容器ID,即启动守护式容器
# -i:以交互式运行容器,通常与-t同时使用
# -t:为容器重新分配一个伪输入终端,通常与-i同时使用
# -P:随机端口映射
# -p:指定端口映射,有四种格式:ip:hostport:containerport、ip::containerport、hostport:containerport、containerport
# --privileged=true:使用该参数指定容器内的root拥有真正的root权限,false代表容器内的root只拥有外部宿主机的一个普通用户权限
阅读全文 »
0%