Docker学习笔记

一、Docker概述

docker是一种轻量级应用容器引擎,可以将应用与具体操作系统的联系剥离出来,并且可以将不同应用容器相互隔离,能够在保证效率的前提下降低应用之间的相互影响。其设计可以与虚拟机进行类比,但比虚拟机更轻量。由于docker容器具有独立完整的运行环境,可以实现“打包一次,到处运行”(类似上世纪90年代,java的口号“write once, run anywhere”),而且十分轻量,十分适合应用的开发部属,是互联网APP开发的首选。在docker的基础上,还衍生了 Kubernetes(K8S,底层支持不仅是docker)、dockerSwap(docker公司亲儿子)等集群化管理工具,容器化时代已经来临。

1.1 Docker安装

## 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
## 设置仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
## 安装docker
yum install docker-ce docker-ce-cli containerd.io
## 开机启动
systemctl start docker
systemctl enable docker
## 测试安装
docker version
docker run hello-world

## 官方脚本一键安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

ubuntu安装参见https://www.runoob.com/docker/ubuntu-docker-install.html

nvidia-docker 安装参见英伟达官网

阅读全文
python单元测试--基于pytest

pytest安装

1
pip3 install pytest
阅读全文
nginx学习笔记

一、Nginx的安装

1.1 源码编译

Nginx官网下载对应版本的源码包并解压

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar xvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
git clone http://github.com/simpl/ngx_devel_kit.git ## 扩展模块
git clone http://github.com/calio/form-input-nginx-module.git ## 扩展模块
./configure \
--prefix=/usr \ ## 应用默认根路径
--without-http_memcached_module \
--with-http_stub_status_module \
--with-http_ssl_module --with-pcre \
--add-module=ngx_devel_kit \
--add-module=form-input-nginx-module \
--add-module=echo-nginx-module \
--add-module=lua-nginx-module \
--pid-path=/usr/local/nginx/nginx.pid \ ## 指定PID路径
--error-log-path=/usr/local/nginx/error.log \ ##指定error-log路径
--conf-path=/etc/nginx/nginx.conf \## 指定conf路径
--sbin-path=/usr/sbin/nginx ## 指定nginx文件路径
make && make install

一般而言,上述后面几个参数在指定prefix后不用指定。但对于只是出于更新原有nginx的binary文件目的,需要指定原先的相应配置目录。对于重新编译nginx,可以通过nginx -V查看之前的编译信息。

注意,lua模块务必使用文档所说版本。
make upgrade可以让nginx进行平滑升级,参见文档

阅读全文
linux学习笔记
shell | linux | OS

一、环境变量的查看与配置

1.1 环境变量的查看

$PATH

通过“$+名称”的形式查看环境变量。这里以添加路径/usr/local/gcc-8.3.0/bin到环境变量为例,该路径是gcc、g++等C/C++编译器命令的目录。

1.2 临时环境变量的设置

(1)bash脚本中变量

v=$1

通过如上形式同其他编程语言一样产生变量,并用“$”查看。

效用范围:当前bash脚本

(2)export命令配置环境变量

export PATH=$PATH:/usr/local/gcc-8.3.0/bin

效用范围:当前终端连接,所有用户。不同路径间分隔符用“:”,$PATH放在其中用于拼接原有的路径。下同。

(3)/etc/profile

export PATH=$PATH:/usr/local/gcc-8.3.0/bin

这个文件中添加同样的命令,并

source /etc/profile

效用范围:重启系统前,属于临时环境变量,只有效于当前终端连接和所有用户。重启系统后,属于全局环境变量,长期有效。

阅读全文
基于Clash配置linux服务器代理
clash | vpn | 代理

配置过程

首先从Dremacro/clash仓库下载最新的发行版。注意选择适合自己CPU架构的版本。可以通过dpkg --print-architecturearch来查看CPU架构,x86_64amd64是等价的架构名称。

1
2
3
4
wget https://github.com/Dreamacro/clash/releases/download/v1.10.0/clash-linux-amd64-v3-v1.10.0.gz
gunzip clash-linux-amd64-v3-v1.10.0.gz
mv clash-linux-amd64-v3-v1.10.0 <你的保存目录>/clash
chmod +x <你的保存目录>/clash

将clash所在目录加入PATH,例如在~/.bashrc中添加
1
export PATH=your/path/to/clash:$PATH

再进行clash初始化,执行clash命令即可,初始化完毕后,在~/.config/clash看到了config.ymlCountry.mmdb两个重要文件。

接着从你购买的VPN服务商那里获取clash的订阅连接,例如我使用的kingfast,将其覆盖保存为前面的config.yml

1
wget https://sub.o4o.win/api/sub/****?type=clash -O ~/.config/clash/config.yml
阅读全文
python学习笔记

一、类与对象

1.1 根类和元类

在python当中一切皆为对象,而在这当中有两个特别重要的概念:元类(meta class)和根类(root class)。对应两个基本类型typeobject

类型本身也是一种对象,它是的类型即为元类type。例如我们常见的内置数据类型str、list、dict、int和float等均为type的实例,如下示例。

1
2
3
4
5
assert isinstance(str, type)
assert isinstance(list, type)
assert isinstance(dict, type)
assert isinstance(int, type)
assert isinstance(object, type)

而所有类型又都是根类object的直接或间接子类,继承了object的属性,如下示例

1
2
3
assert issubclass(str, object)
assert issubclass(list, object)
assert issubclass(type, object)

阅读全文
anaconda学习笔记

一、Anaconda的下载与安装

Anaconda官网下载对应版本的Anaconda,根据提示安装。

二、Anaconda虚拟环境的创建与使用

Anaconda的一大特色就是支持虚拟环境的创建。虚拟环境之间不共享,从而解决了多版本安装的冲突问题。默认情况下进入anaconda终端,其实进入的是anaconda的base虚拟环境。

1
(base) PS C:\Users\idrb>

2.1 虚拟环境的创建

1
conda create -n <环境名称> [包1, 包2,...]

例如conda create -n gcszhn python=3.8.5 torch创建了名为gcszhn的虚拟环境,同时安装了python3.8.5和torch在虚拟环境中。需要指出的时,创建时不一定要安装包。可以在激活进入虚拟环境时单独安装。

2.2 虚拟环境的激活

1
2
(base) PS C:\Users\idrb>conda activate gcszhn
(gcszhn) PS C:\Users\idrb>pip install torch
阅读全文
markdown学习笔记

markdown实用技巧

引用Base64编码的照片

很多时候,我们存在将照片内置于markdown文档的需求,这时候可以采用Base64编码方式编码字符串。字符串格式data:image/图像类型;base64,图像编码,图像类型可以是gif、png、webp和jpeg等多种类型,依据自身图片格式而定。

1
![img](你的base64图像字符串)

若图片过于大,编码字符串会很长,此时可以选择将字符串建立索引并置于文末,格式如下:

1
2
3
![img][自定义ID]
你的正文其他内容
[自定义ID]:你的base64图像字符串
阅读全文
windows11使用的小技巧杂收

使用windows10经典菜单

windows11菜单很蠢,需要二级菜单才能进行很多方便的右键操作。可以通过修改注册表来实现恢复windows 10风格。以管理员身份运行下列语句。

1
reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f

恢复windows 11风格

1
reg.exe delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f

上述两个操作都要重启资源管理器方可生效。

阅读全文
使用hexo构建个人博客

使用hexo构建个人博客步骤

  • 安装nodejs
  • npm install hexo -g安装hexo
  • hexo init myblog创建个人博客项目
  • cd myblog进入个人博客项目
  • npm install安装项目依赖
  • hexo new blog创建新博文
  • hexo server本地查看博客
阅读全文