/images/avatar.png

拆解Docker黑盒:用原生Linux命令手写一个"容器"

容器的本质是 Linux 内核两项基础能力的组合:Namespaces 负责隔离视图,CGroups 负责限制资源。本文不依赖 Docker 等任何容器工具,仅使用 unshare、cgcreate、cgset 等原生命令,动手还原一个最小化"容器"的完整构建过程。读完后你会理解 docker run 底层没有黑魔法,并掌握 CGroups v1/v2 的差异与 OOM、CPU 配额等限制机制。

Jenkins 入门介绍

本文从持续集成(CI)与持续部署(CD)的基本概念讲起,介绍开源 CI/CD 工具 Jenkins 的定位与同类工具对比,并详细演示如何基于 Kubernetes 编写 Deployment 等 YAML 清单来部署 Jenkins。

Helm Charts 介绍

Helm 使用 charts 包格式来描述一组相关的 Kubernetes 资源,是 Kubernetes 应用的包管理方式。本文介绍 chart 的目录结构、Chart.yaml 文件的必备字段,以及 templates 模板与 values 值的配合使用机制,帮助快速理解 Helm Charts 的编写基础。

Dockerfile 使用指南:从 Go 二进制构建到生产镜像优化

Dockerfile 是学习 Docker 时非常核心的一部分,真正掌握它的关键是理解应用如何从源码经过构建变成可运行的容器镜像。本文以 Go 1.20 项目为例,从基本概念开始逐步介绍常用指令、CMD 与 ENTRYPOINT 的区别、多阶段构建、构建缓存优化以及非 root 用户等生产实践,最后集中整理 Dockerfile 相关的常见面试问题。