05 本地运行时与容器
本地容器工具解决的不是“把命令换成 YAML”,而是让开发依赖、构建环境、网络、持久化数据和调试入口在不同开发机上得到可解释的相同结果。CLI、daemon、虚拟机、镜像、容器、网络和卷各有独立状态;只要其中一层指向了旧资源,验证结果就可能是假象。
运行时关系
阅读路径
| 文章 | 先解决的问题 | 继续建立的能力 |
|---|---|---|
| Docker Desktop | Windows/macOS 安装、虚拟化、WSL、资源与代理 | context、诊断、企业证书、重置和许可核验 |
| Docker Engine | Linux Engine、daemon、systemd 与权限 | rootless、存储、日志、升级回退和受控远程访问 |
| Docker Compose | 多服务配置、网络、卷和健康检查 | profiles、配置合并、项目合同和可重复重置 |
| Podman 与 Rancher Desktop | Docker 替代入口和兼容性验证 | rootless、machine、SELinux、双运行时和迁移判据 |
| Dev Containers 与 Codespaces | 容器化开发环境和生命周期 | UID/GID、挂载、Secret、预构建、成本与数据边界 |
| 镜像、卷、网络与安全清理 | 找出磁盘和旧状态来自哪里 | 引用图、分级清理、删除护栏和恢复验证 |
可复现底线
团队必须明确推荐运行时、版本验证命令、Compose project name、端口分配、命名卷用途、代理与 CA 注入方式、Registry 身份、清理脚本 owner 和数据重置边界。down、删除容器、删除卷、清理 Build Cache 和恢复出厂设置不是同一种动作,不能包装成一个没有预览和确认的一键脚本。
开发环境可以比生产环境轻量,但不能省略真实性:写入卷的数据要经过重启和重建验证,容器间连接要使用服务发现而不是偶然 IP,镜像要能追溯到 Dockerfile 与摘要,清理后要从干净状态重新证明项目仍能启动。
与生产运行的交接
开发团队负责把镜像来源、Compose 配置、端口、健康检查、数据初始化、最小权限和清理动作做成可复现的项目入口。进入共享测试或生产环境后,节点容量、集群高可用、镜像仓库灾备、主机补丁、值班巡检、正式变更窗口和故障接管应进入部署运维流程。交接不能只给一份 YAML,还要同时交付镜像摘要、配置来源、数据恢复步骤、资源基线、已知限制和回滚证据。
