
如何批量清理旧的(已停止的)Docker 容器?
docker container prune 一键清理所有停止的容器;docker system prune 连未用镜像网络一起清;按条件清理用 docker rm $(docker ps -aq --filter ...)。
聚焦概念、架构、排障、价格与选型,一篇解决一个明确问题。

docker container prune 一键清理所有停止的容器;docker system prune 连未用镜像网络一起清;按条件清理用 docker rm $(docker ps -aq --filter ...)。

docker image prune 清悬空(<none>)镜像;docker image prune -a 清所有没被容器使用的镜像;docker system prune -a 连容器网络一起清。

docker run 镜像名:标签 即从镜像创建并启动容器;常用参数:-it 交互、-d 后台、--name 命名、-p 端口、-v 挂载、-e 环境变量。本文给出入门到常用的完整说明。

values.yaml 默认是静态数据,不会自动渲染 .Release.Name;Chart 可显式用 tpl 渲染可信字符串;替代方案:模板里直接引用 .Release.Name、用 required/默认函数组合、或 --set 从命令行注入。本文给出可行做法。

需要完整虚拟机可选 Vagrant 的 VM provider;应用打包交付可选 Docker。Vagrant 也支持 Docker provider,启动速度、隔离与系统兼容性取决于实际平台和配置。

Compose 管单机上的多容器应用(简单 YAML、单机网络);K8s 管跨主机集群的容器编排(扩缩容、自愈、滚动发布、服务发现)。小项目/单机用 Compose,生产集群用 K8s。本文全面对比。

links 提供旧式链接别名并隐含启动依赖,depends_on 控制启动顺序(可配 service_healthy 等就绪)。同一 Compose 网络内可按服务名通信;迁移 links 时需保留别名和依赖语义。

卷权限需核对进程 UID/GID、映射、模式位、ACL 与挂载策略。命名卷可能复制初始化内容,但不会自动修正已有数据权限;仅调整确认归属的目录,避免宽限 777。

Dockerfile 定义单个镜像怎么构建(装什么、拷什么、怎么启动);docker-compose.yml 定义多个容器怎么协同运行(用哪些镜像、网络、卷、端口)。一个管"造",一个管"跑"。本文讲清分工与配合。

EXPOSE 是 Dockerfile 里的文档性声明(声明容器监听端口,不做实际映射);publish(-p)是 docker run 时建立宿主机到容器的真实端口映射。声明 ≠ 开通,本文讲透两者关系。

run 是"创建+启动"二合一(产生新容器),start 是"启动已存在的容器"(保留可写层,不恢复进程内存);running 表示主进程运行,health: starting 则表示初始健康判定尚未完成。本文讲清 docker run/start/create 的状态流转。

容器共享宿主机内核,CPU/内存开销取决于工作负载和运行环境,不能统一保证 <5%;有开销的点是网络 NAT、存储驱动与磁盘 I/O、以及过度限制资源。本文说明常见开销来源与实测方法。