Levon's Blog

微信: L6241425

Docker Compose 用于定义和运行多容器应用。通过 docker-compose.yml 配置文件,可一次性启动、停止和管理所有服务。

Docker Compose 解决的核心问题:

  • 配置即代码:将所有容器配置集中于 YAML 文件,告别繁琐的命令行参数
  • 一键式管理docker compose up/down 即可创建或销毁整个环境
  • 环境一致性:团队成员使用同一配置文件,复现相同运行环境
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#3B82F6', 'primaryTextColor': '#1E3A5F', 'primaryBorderColor': '#2563EB', 'lineColor': '#60A5FA', 'secondaryColor': '#10B981', 'tertiaryColor': '#F59E0B'}}}%%
flowchart LR
    A["docker-compose.yml"] --> B["docker compose up"]
    B --> C["创建网络"]
    B --> D["拉取/构建镜像"]
    B --> E["启动容器"]
    C --> F["多容器应用运行"]
    D --> F
    E --> F

    classDef primary fill:#3B82F6,stroke:#2563EB,color:#fff
    classDef success fill:#10B981,stroke:#059669,color:#fff
    class A primary
    class F success
阅读全文 »

1. github DMCA takedown

前两天, 发现blog突然无法提交了. 去邮箱里看github发的邮件才知道有一篇博文涉及到jetbrains版权问题, 让24小时内处理, 后来完美错过了时间. 就直接被takedown了.

2. 折腾过程

takedown后一脸懵逼, 在网上查询的解决方案基本都是给github发邮件, 请求删除仓库或者再给一次宽限24小时的处理时间.

于是我试着发了一封邮件, 没想到10天后才得到回复 (这效率~~~). 回复的时间还在十一假期内, 虽然又给我了24小时处理, 又被我完美错过了.(!!!!!一定要定期查看邮件)

阅读全文 »

1. 同一台电脑有2个github账号?

  • 首先要为每个帐号生成公钥私钥对, 并且设置到 github 里。

  • 修改 ~/.ssh/config, 设置如下

1
2
3
4
5
6
7
8
Host unix2dos
HostName github.com
IdentityFile ~/.ssh/github-unix2dos
User unix2dos
Host levonfly
HostName github.com
IdentityFile ~/.ssh/github-levonfly
User levonfly

测试:

1
2
ssh -T git@unix2dos
ssh -T git@levonfly
阅读全文 »

Session是服务器端使用的一种记录客户端状态的机制,Session在用户第一次访问服务器的时候自动创建。客户端只保存sessionid到cookie中,而不会保存session,关掉浏览器并不会关闭session。

阅读全文 »

Cookie 是在 HTTP 协议下,由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

阅读全文 »

0. 前言

Selenium 的初衷是打造一款优秀的自动化测试工具,但是慢慢的人们就发现,Selenium 的自动化用来做爬虫正合适。我们知道,传统的爬虫通过直接模拟 HTTP 请求来爬取站点信息,由于这种方式和浏览器访问差异比较明显,很多站点都采取了一些反爬的手段,而 Selenium 是通过模拟浏览器来爬取信息,其行为和用户几乎一样,反爬策略也很难区分出请求到底是来自 Selenium 还是真实用户。

通过 Selenium 来做爬虫,不用去分析每个请求的具体参数,比起传统的爬虫开发起来更容易。Selenium 爬虫唯一的不足是慢,如果你对爬虫的速度没有要求,那使用 Selenium 是个非常不错的选择。

阅读全文 »

1. 常用软件

1.1 健康类

  • autosleep 睡眠。 25元买断终身,可以和heartwatch一起购买,一共50元。

  • heart watch / heart analyzer 心率分析。

  • keep 跑步。

阅读全文 »

0. 前言

Cobra(眼镜蛇)是一个库,其提供简单的接口来创建强大现代的CLI接口,类似于git或者go工具。同时,它也是一个应用,用来生成个人应用框架,从而开发以Cobra为基础的应用。Docker源码中使用了Cobra。

Cobra基于三个基本概念commands,argumentsflags。其中commands代表行为,arguments代表数值,flags代表对行为的改变。

基本模型如下:

1
2
3
4
5
6
7
APPNAME COMMAND ARG --FLAG

# hugo是cmmands server是commands,port是flag
hugo server --port=1313

# clone是commands,URL是arguments,brae是flags
git clone URL --bare
阅读全文 »

1. 网络接口介绍

1.1 网络接口的命名

网络接口并不存在一定的命名规范,但网络接口名字的定义一般都是要有意义的。例如:

  • eth0: ethernet的简写,一般用于以太网接口。

  • wifi0:wifi是无线局域网,因此wifi0一般指无线网络接口。

  • ath0: Atheros的简写,一般指Atheros芯片所包含的无线网络接口。

  • lo: local的简写,一般指本地环回接口。

阅读全文 »

0. 前言

Chrome59(linux、macos)、 Chrome60(windows)之后,Chrome自带headless(无界面)模式很方便做自动化测试或者爬虫。但是如何和headless模式的Chrome交互则是一个问题。通过启动Chrome时的命令行参数仅能实现简易的启动时初始化操作。Selenium、Webdriver等是一种解决方案,但是往往依赖众多,不够扁平。

puppeteer是谷歌官方出品的一个通过DevTools协议控制headless Chrome的Node库。可以通过puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进行UI Test或者作为爬虫访问页面来收集数据。

pyperteer是puppeteer的Python实现,相比于selenium具有异步加载、速度快、具备有界面/无界面模式、伪装性更强不易被识别为机器人同时可以伪装手机平板等终端;但是也有一些缺点,如接口不易理解、语义晦涩;

阅读全文 »
0%