Debian 最佳实践
Debian 最佳实践是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Debian 核心概念
Debian 核心概念是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Debian 常见问题
Debian 常见问题是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
CentOS 实战指南
CentOS 实战指南是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Linux 核心概念
Linux 核心概念是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
CentOS 配置方法
CentOS 配置方法是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
CentOS 优化技巧
CentOS 优化技巧是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Linux 实战指南
Linux 实战指南是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Debian 入门教程
Debian 入门教程是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Debian 深入解析
Debian 深入解析是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Linux 入门教程
Linux 入门教程是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Alpine Linux 最小化容器系统
Alpine Linux 基于 musl libc 和 BusyBox 镜像仅 5MB。apk 包管理器安装软件。容器的首选基础镜像但兼容性注意。本文优化 Dockerfile 使用 Alpine。
CentOS 常见问题
CentOS 常见问题是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Debian 实战指南
Debian 实战指南是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Debian 优化技巧
Debian 优化技巧是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Linux 常见问题
Linux 常见问题是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
CentOS 核心概念
CentOS 核心概念是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
CentOS 深入解析
CentOS 深入解析是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
CentOS 入门教程
CentOS 入门教程是开发者需要掌握的知识点。本文从基础概念开始结合实际案例详细讲解帮助读者深入理解并应用到实际开发中。
Nginx 限流 ngx_http_limit_req_module
Nginx limit_req_zone 定义速率限制。burst 接受短时突发nodelay 立即拒绝超量。防止 DDoS 和爬虫。本文配置 API 限流。
Ansible Molecule 测试角色
Molecule 测试 Ansible 角色在容器中执行收敛验证。testinfra 断言系统状态。CI 集成。本文测试 Nginx 角色部署后的配置。
Linux 内核模块编写
Linux 内核模块动态加载到内核不需要重新编译。module_init 和 module_exit 入口。Makefile 编译 Kbuild。本文写一个 Hello World 内核模块。
Loki 多租户日志隔离
Grafana Loki 多租户模式不同团队日志隔离。X-Scope-OrgID header 区分租户。每个租户独立查询。本文配置 Loki 多租户。
Prometheus Blackbox 外部探测
Blackbox Exporter 从外部探测服务可用性。支持 ICMP ping HTTP 状态码和 TLS 证书过期监控。本文监控外部 HTTPS 服务的响应时间。
Kibana 查询语法 KQL
Kibana 查询语法 KQL是开发中常用的技术工具或方法。本文从实际应用出发介绍核心概念和操作步骤帮助读者快速上手并掌握关键技巧。
Linux Namespace 隔离
Linux Namespace 隔离是开发中常用的技术工具或方法。本文从实际应用出发介绍核心概念和操作步骤帮助读者快速上手并掌握关键技巧。
Grafana Tempo 分布式追踪
Grafana Tempo 是分布式追踪后端用对象存储做低成本持久化。兼容 Jaeger 和 OpenTelemetry 协议。TraceQL 查询语言。本文部署 Tempo 采集应用 trace。
Docker Buildx 多架构构建
Docker Buildx 构建跨架构镜像用 QEMU 模拟在 x86 上构建 ARM 镜像。--platform linux/amd64,linux/arm64。本文构建并发布多架构镜像。
Samba 文件共享跨平台
Samba 在 Linux 上提供 SMB/CIFS 文件共享 Windows 可直接访问。配置目录挂载路径和权限。适合 NAS 和文件服务器。本文配置 Samba 共享媒体目录。
Caddy Web 服务器自动 HTTPS
Caddy 自动申请和续期 Let's Encrypt 证书。Caddyfile 简洁配置反向代理。不必手动管理证书。本文配置 Caddy 反向代理并对比 Nginx 配置量。
ZFS 文件系统快照和压缩
ZFS 是高级文件系统内置了卷管理和 RAID。快照秒级创建基于 Copy-on-Write。即时压缩减少存储空间。本文配置 ZFS 池和自动快照。
OpenResty 高性能 Web 平台
OpenResty 将 Lua 嵌入 Nginx 实现高性能 Web 应用。WAF 防护和 API 网关。lua-resty 生态丰富。本文用 OpenResty 实现 IP 频率限制。
SNMP 协议监控网络设备
SNMP 采集网络设备的 CPU 内存和端口流量。OID 标识指标 MIB 组织定义。Prometheus SNMP exporter 对接。本文用 SNMP 监控核心交换机。
Jenkins Pipeline 声明式语法
Jenkins 声明式 Pipeline 用结构化语法定义构建流程。agent 指定执行节点stage 阶段step 具体操作。本文配置构建测试部署的三阶段 Pipeline。
eBPF 内核编程的 observability
eBPF 在内核中安全执行自定义程序不需要加载内核模块。用于跟踪系统调用网络和性能。Cilium 基于 eBPF 实现网络和安全。本文写一个跟踪 open 系统调用的 eBPF 程序。
SSH 端口转发实现内网穿透
SSH 本地端口转发 -L 将远程端口映射到本地远程转发 -R 将本地端口暴露到远程。动态转发 -D 做 SOCKS 代理。本文用 SSH 隧道访问内网数据库。
Syslog 日志收集和集中管理
Syslog 是 Linux 标准日志协议。rsyslog 配置远程日志发送集中管理。日志服务器统一存储和查询。本文配置 rsyslog 将多台服务器的日志汇集到一台。
Vagrant 统一开发环境配置
Vagrant 用 Vagrantfile 定义开发环境配置一次团队全部一致。支持 VirtualBox 和 Docker provider。shell 脚本或 Ansible 做 provisioning。本文搭建一个 LAMP 开发环境。
自动化运维 Ansible Playbook 编写
Ansible 通过 SSH 执行Playbook 是 YAML 格式的任务清单。模块化设计常见的 file yum service 模块覆盖了大多数运维操作。本文编写一个部署 Web 应用的 Playbook。
PromQL 查询 Prometheus 指标的常用语法
PromQL 是 Prometheus 的查询语言。rate/counter 算速率histogram_quantile 算分位数。本文用服务器 CPU 和内存指标展示 PromQL 的常用查询模式。
Grafana 和 Prometheus 监控告警搭建
Prometheus 采集指标数据Grafana 可视化展示。添加数据源创建仪表盘设置警报规则。本文从零搭建一套服务器监控面板覆盖 CPU 内存磁盘和网络指标。
Docker 构建中使用 buildkit 加速
DOCKER_BUILDKIT=1 docker build 启用 buildkit。支持并行构建和更好的缓存。--mount=type=cache 加速依赖下载。本文介绍 buildkit 的启用和配置。
Docker 中 --pull 参数强制拉取最新镜像
docker build --pull 强制拉取基础镜像的最新版本不使用缓存。适合安全更新和基础镜像定期升级的场景。不加 --pull 使用本地缓存的 base 镜像。
Docker 中 LABEL 指令添加元数据
LABEL maintainer=email 和 LABEL version=1.0 给镜像添加元数据。docker inspect 可以查看镜像的标签。适合管理镜像的来源和用途。
Docker 中使用 --init 管理僵尸进程
docker run --init 使用 tini 作为入口管理信号转发和回收僵尸进程。防止容器中 PID 1 不处理 SIGTERM 导致容器无法优雅关闭。
Docker 中运行多个进程
Docker 容器内运行多进程建议用 supervisord 管理进程。最佳实践是一个容器只运行一个进程需要多进程时通过 Docker Compose 拆分容器。
Docker 中网络别名 network alias
docker network connect --alias alias_name network container_name 给容器加网络别名。同一网络内可以通过别名访问容器实现简单的服务发现。
Docker 中 EXPOSE 指令的作用
EXPOSE 只声明容器在运行时监听哪些端口不实际发布端口。docker run -p 实际发布端口。EXPOSE 更多是文档作用让镜像使用者知道容器需要哪些端口。
Docker 中 USER 指令的安全配置
Dockerfile 中用 USER 切换到非 root 用户运行。先 RUN addgroup && RUN adduser 创建用户然后 USER appuser。减少容器被攻破时的危害。
Docker 容器的健康检查 HEALTHCHECK 指令
HEALTHCHECK --interval=30s --timeout=10s CMD curl -f http://localhost || exit 1 让 Docker 定期检查容器健康状态。不健康时触发 restart 策略。
Docker 容器中使用宿主机的代理
Docker 容器默认不走宿主机的代理。设置环境变量 HTTP_PROXY 和 HTTPS_PROXY 为宿主机 IP 和代理端口可以让容器走宿主机的代理。
Docker 中 COPY 和 ADD 的选择
COPY 只复制本地文件ADD 除了复制还能解压 tar 和从 URL 下载。但 URL 下载不可预测建议用 COPY 加 RUN curl。本文对比两者的用法。
Docker 容器内查看占用端口的进程
Docker 容器内没有 systemd 和完整的 /proc 但可以用 ss -tlnp 或 cat /proc/net/tcp 查看端口监听状态。本文列出容器内可用的网络排查命令。
Docker 容器中运行定时任务
Docker 容器默认没有运行 cron 服务需要在 Dockerfile 中安装 cron 并以 crond 作为启动命令。或者用宿主机的 cron 通过 docker exec 执行。
Docker 构建时 COPY 的文件权限问题
Docker 的 COPY 指令默认保留源文件权限但如果不设置 RUN chmod 可能因最后用非 root 用户运行而权限不足。本文展示如何设置正确的文件权限。
Docker overlay2 存储驱动的磁盘空间问题
Docker 的 overlay2 存储驱动每一层都是一个目录长期运行产生大量层占用磁盘。docker system prune 清理悬空层docker buildx du 查看各层大小。
Docker 容器内使用宿主机的 GPU
Docker 容器默认无法访问宿主机的 GPU。需要安装 nvidia-docker 并在 docker run 时加 --gpus all 参数才能让容器使用 GPU。本文介绍配置步骤。
Linux find 命令按时间查找文件
find /path -mtime -7 找 7 天内修改过的文件-mtime +30 找 30 天前的文件。配合 -exec 可以对找到的文件执行操作。本文介绍 find 按时间条件的完整用法。
Docker 容器时区设置影响日志时间
Docker 容器默认 UTC 时间日志时间比中国时间晚 8 小时。通过环境变量 TZ=Asia/Shanghai 或者挂载 /etc/localtime 可以纠正。本文对比两种配置方式。
Docker 容器的 restart policy 配置
Docker 容器的重启策略决定容器退出后是否自动重启。always 一直重启unless-stopped 手动停止后不重启。on-failure 仅在异常退出时重启。