标签: #docker
关于 GPU、LLM、MLOps、Kubernetes 以及心态的文章 · 12 篇
容器镜像漏洞扫描结果怎么读 — 把几百个 Critical 变成 0 的实际做法
第一次跑镜像扫描器,会吐出几千条漏洞,其中相当一部分是 Critical。把这份报告原封不动丢给团队,结果是什么都不会发生。本文从一个事实出发:扫描器实际做的只是把已安装的包清单和 CVE 数据库对一遍。由此解释厂商回移补丁造成的误报、为什么必须参考发行版的安全公告,以及应用代码里的漏洞压根就看不见这一局限。文章会讲清为什么不能只看 CVSS 分数、如何把 EPSS 和 KEV 这类真实利用指标一起读,并用命令和输出展示:消掉几千条漏洞
2026-07-26 · 17 分钟阅读 #security#container#docker#trivy#kubernetesDocker 构建缓存为什么总是失效 — 层缓存键、ARG 与 BuildKit 缓存挂载
从缓存键这一层解释:为什么只改了一行代码,npm ci 却要重跑五分钟。文章讲清 RUN 的缓存键是命令字符串、而 COPY 的缓存键是文件内容哈希这一差别,一层失效就会连带失效其下所有层的规则,以及 ARG 在 BuildKit 与旧构建器上行为不同的那个点。再结合 CI runner 本来就没有缓存这一事实,用真实命令和输出梳理缓存挂载不会被导出到镜像仓库缓存的陷阱、cache-from 与 cache-to 的 mode 差异,以
2026-07-26 · 14 分钟阅读 #docker#buildkit#build-cache#ci-cd#devops容器与 VM 究竟差在哪里 — namespace、cgroup,以及共享内核的账单
先说清"容器是轻量级 VM"这种说法为什么会带来误解。容器只是一个被命名空间遮住视野、被 cgroup 限制了资源的普通 Linux 进程,它原样共享宿主机内核。文章用真实命令确认 pid/mnt/net/uts/ipc/user/cgroup 各自隔离了什么、cgroup v2 又限制了什么,并讨论共享内核带来的后果:sysctl 共享、对内核版本的依赖,以及容器逃逸。最后延伸到 gVisor、Kata 和 Firecracker 存
2026-07-26 · 18 分钟阅读 #docker#container#linux-namespace#cgroup#virtualizationDocker 网络模式与连接问题 — bridge、host、overlay,以及 127.0.0.1 的陷阱
把"容器起来了却连不上"这类状况,按各模式的工作原理逐一拆开。文章讲清默认 bridge 下容器为什么无法用名字互相找到、用户自定义网络的内置 DNS 起了什么作用、端口发布实际生成的 iptables DNAT 规则,以及把绑定地址限制在 127.0.0.1 的安全含义。还会用真实命令和输出梳理容器里的回环并不是宿主机以及 host.docker.internal、应用只绑定回环导致外部连不上的问题、UFW 拦不住已发布端口的机制,以
2026-07-26 · 17 分钟阅读 #docker#docker-network#iptables#networking#devopsDockerfile 里反复出现的错误 — 以 root 运行、PID 1,以及留在镜像里的密钥
把那些构建能过、只在生产环境炸掉的 Dockerfile 问题,从原因说起。没写 USER 因而以 root 运行的容器、latest 标签与可复现性、为什么该避开 ADD、shell form 的 CMD 吞掉 SIGTERM 导致每次部署白扔 10 秒并以 137 退出的机制、PID 1 的僵尸回收职责与 tini、用 ARG 和 ENV 传入的令牌残留在 docker history 里的问题,以及 BuildKit 的 secr
2026-07-26 · 16 分钟阅读 #docker#dockerfile#container-security#pid1#devops给 Docker 镜像瘦身 — 层的真相、multi-stage build,以及基础镜像的真实代价
先从如何用 dive 逐层定位 Docker 镜像膨胀到 1.9GB 的根源讲起。文章会解释为什么联合文件系统让 RUN rm 连一个字节都减不掉、多阶段构建到底该把什么复制进最终阶段、alpine 的 musl libc 通过 Python wheel 重新编译和 DNS 问题收取的隐性成本,以及 distroless 与 slim 的取舍 — 全部配上真实的 Dockerfile 与真实输出。最后讲清楚比体积更能决定部署速度的层复用
2026-07-26 · 16 分钟阅读 #docker#dockerfile#multi-stage-build#container#devopsPodman 6.0 — 移除 slirp4netns、CNI 和 cgroups v1;macOS 默认 provider 换成了 libkrun
2026 年 6 月 24 日,距 Podman 5.0 发布 27 个月后的大版本 6.0.0 发布了。slirp4netns、CNI、iptables、cgroups v1、BoltDB 的支持被一次性移除,Intel Mac 和 Windows 10 的支持也被砍掉,macOS 的默认 machine provider 从 applehv 换成了 libkrun。随着 CNCF 迁移,GitHub 组织和 Go 导入路径也发生了变
2026-07-17 · 20 分钟阅读 #container#podman#docker#linux#macosDocker 到 Podman — 无守护进程容器引擎迁移完全指南
Podman 以无守护进程(fork-exec)方式运行、且默认 rootless,这一点从架构哲学上就与 Docker 不同。本文梳理了内部工作原理(conmon·crun)、配置文件的位置与含义、使用 GPU 所需的 CDI 设置、原样使用 compose.yaml 的两种方法(podman 套接字 + docker compose vs podman-compose)、SELinux 卷标签之类的迁移陷阱,以及版本与社区的比较 —
2026-07-08 · 13 分钟阅读 #docker#podman#containers#devops#linux容器与 Docker 内部完全攻略 — Namespace、cgroups、OverlayFS、seccomp、Capabilities 直到 Kubernetes(2025)
“容器不是轻量级 VM。”在 docker run 这一行命令的背后,运行着 7 种 Linux namespace、cgroups v2、OverlayFS 层、seccomp 过滤器和 Linux capabilities。从 2008 年的 LXC 到 2013 年 Docker 登场、2015 年 OCI 标准化,再到 2024 年现代运行时的演进 — 容器如何在没有 VM 的情况下做出隔离,为什么 Docker 比 VM 快
2026-04-15 · 19 分钟阅读 #docker#container#namespace#cgroups#overlayfsDocker & Kubernetes 入门完全指南 — 从容器到编排
Docker 的原理、Dockerfile 写法、Kubernetes 的核心概念(Pod/Service/Deployment)、Helm 以及实战部署,容器的一切都在这里。
2026-04-12 · 19 分钟阅读 #devops#docker#kubernetes#container#orchestrationAI 开发环境完全指南:从 GPU 服务器搭建到 Jupyter、VS Code、Docker
面向 AI 研究与开发的完整环境搭建指南。从 CUDA 驱动安装、虚拟环境管理、JupyterLab 高级用法、VS Code AI 扩展、Docker GPU 容器,到远程开发环境,逐步完成全套配置。
2026-03-17 · 25 分钟阅读 #development-environment#jupyter#vscode#docker#gpuDocker 与 Podman 命令完全指南:把容器运维的一切整理在一页之内
从 Docker 与 Podman 的架构差异,到镜像管理、容器生命周期、网络、卷、Docker Compose 与 Podman Compose 的对比、安全(Rootless)、多阶段构建以及调试 —— 用实战示例系统性地整理容器运维所需的全部命令。
2026-03-01 · 62 分钟阅读 #docker#podman#container#devops#kubernetes