Tech

使用官方 Registry v2 搭建 Docker Mirror 私有镜像仓库

在国内网络环境下,直接从 Docker Hub 拉取镜像经常遇到超时或被限流的问题。搭建一个本地 Docker Mirror 代理仓库可以有效解决这个痛点。本文介绍如何使用官方 Registry v2 搭建私有镜像代理仓库。

为什么要搭 Docker Mirror

1. Docker Hub 公网限速

Docker Hub 对匿名用户的拉取限速为 100 次/6 小时,免费账户为 200 次/6 小时。在 CI/CD 流水线或多人团队环境下,这个限额很容易触达。通过自建 Mirror 代理,所有节点的拉取请求汇聚到 Mirror 节点,Mirror 对上游只产生一次请求,有效规避限额。

2. 缓存加速 Build

在 CI/CD 构建中,每次 docker build 都需要拉取基础镜像。即使代码没有变化,基础镜像也会被反复从公网拉取,浪费时间。Mirror 缓存了基础镜像后:

  • 首次构建:从上游拉取并缓存
  • 后续构建:直接从 Mirror 拉取,速度提升 5-10 倍
  • 多节点并行构建:共享同一个 Mirror,只消耗一次外网流量

使用 Python 通过 ISAPI 读取海康威视摄像头设备信息

海康威视(Hikvision)摄像头提供了一套基于 HTTP 的 ISAPI(Intelligent Security API)接口,可以方便地通过程序读取设备信息、配置参数等。本文介绍如何用 Python 通过 ISAPI 接口读取海康摄像头的设备信息。

ISAPI 简介

ISAPI 是海康威视定义的一套 RESTful 风格接口,运行在摄像头的 Web 服务(默认端口 80/443)上。接口路径通常以 /ISAPI/ 开头,请求和响应使用 XML 格式。常见的设备信息接口包括:

接口路径说明
/ISAPI/System/deviceInfo获取设备基本信息(型号、序列号、固件版本等)
/ISAPI/System/status获取设备运行状态(在线时间、CPU/内存使用率等)
/ISAPI/System/Network/interfaces获取网络接口信息(IP、MAC 等)

使用 resolvectl 临时指定 DNS 服务器

在日常运维中,我们经常需要临时切换 DNS 服务器来排查域名解析问题。传统做法是修改 /etc/resolv.conf,但在使用 systemd-resolved 的现代 Linux 发行版中,resolvectl 提供了更优雅的解决方案。

为什么用 resolvectl

传统的修改 /etc/resolv.conf 方式有几个痛点:

  • systemd-resolved 管理下会被覆盖:直接编辑 /etc/resolv.conf 可能无效,因为该文件是一个指向 /run/systemd/resolve/stub-resolv.conf 的符号链接
  • 需要 root 权限:编辑系统文件必须 sudo
  • 容易忘记还原:排查完问题后忘记改回来,可能影响业务

resolvectl 的优势:

特性传统方式resolvectl
修改配置文件
需要 root❌(per-link)
重启后恢复需手动还原✅ 自动恢复
影响范围全局可按网卡控制

查看当前 DNS 状态

# 查看全局 DNS 配置
resolvectl status

# 查看指定网卡
resolvectl status eth0

# 查看当前生效的 DNS 服务器
resolvectl dns

输出示例:

Global
         Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
Resolving DNS Servers: 192.168.1.1
Fallback DNS Servers: 8.8.8.8

Link 2 (eth0)
    Current Scopes: DNS
         Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
Resolving DNS Servers: 192.168.1.1
    DNS Domain: lan

crt.sh:查询证书签发记录工具

crt.sh 是 Sectigo(原 Comodo CA)提供的免费证书透明度(Certificate Transparency,CT)日志查询工具。输入域名就能查到该域名下所有签发过的 SSL/TLS 证书,包括子域名、证书机构、有效期等信息。渗透测试中常用来做子域名收集,运维中用来排查证书签发记录。

使用方法

打开 crt.sh,输入域名即可查询。比如查 example.com,会返回所有包含该域名的证书记录。

也可以直接用 URL 参数查询:

https://crt.sh/?q=example.com

返回结果包含:

  • 证书关联的域名(含通配符子域名)
  • 签发 CA
  • 证书起止时间
  • 证书序列号

类似工具

扩展LVM磁盘空间

在虚拟化环境中,随着业务增长,磁盘空间不足是常见问题。本文记录在 CentOS 7/8 环境下扩展 LVM 磁盘空间的完整流程。

扩展虚拟机磁盘

首先在虚拟化平台(VMware / KVM / Proxmox 等)上扩大虚拟磁盘容量。以 VMware 为例:

  1. 关闭虚拟机(部分平台支持在线扩容)
  2. 编辑虚拟机设置,将磁盘容量从原来的 50GB 扩展到 100GB
  3. 启动虚拟机

扩展后,操作系统层面不会自动识别新增的空间,需要手动操作。