Docker 占了很多空间,先分清是哪一种
镜像、构建缓存、日志和卷的用途不同,应按对象确认占用。
继续阅读恰西 / 按主题阅读
镜像、构建缓存、日志和卷的用途不同,应按对象确认占用。
继续阅读程序升级可能同时修改数据库结构和持久文件格式。旧镜像能启动,不代表它仍能理解新数据,因此应用版本与数据版本需要作为一个整体考虑。
继续阅读容器内部的 localhost 指向它自己,不会自动指向另一个数据库容器。 每个容器通常拥有独立网络命名空间。应用连接 localhost 时,寻找的是自己内部的服务,而不是宿主或旁边的数据库容器,这是容器迁移时常见的误解。
继续阅读当前占用只是某个时刻的样本,启动、迁移和流量高峰可能需要更多内存。设置上限能约束影响范围,但也可能把原本可用的服务限制到无法完成启动。
继续阅读自动重启有助于进程退出后的恢复,但反复崩溃需要查明根因。
继续阅读完整日志可能很长,近期几十行通常更接近本次启动问题。配合故障时间与容器重启记录,可以区分启动失败、运行异常和旧问题残留。
继续阅读进程存在与业务接口能够响应是不同状态,健康检查要覆盖最小可用路径。 容器 Up 说明入口进程仍在运行,Healthy 则取决于配置的探测命令。应用卡死、依赖不可达或内部错误时,进程可能没有退出,业务却已经不可用。
继续阅读配置展开能够发现一部分语法和变量问题,但它并不连接数据库,也不验证业务接口。将部署声明保存下来,有助于比较变更,同时不能省掉运行检查。
继续阅读数据库目录需要持久化,否则重新创建容器可能失去历史数据。
继续阅读发布端口时省略宿主地址,可能把应用绑定到所有接口。若公网流量统一经过 Nginx,绑定回环可以减少绕开入口代理直接访问应用的路径。
继续阅读固定版本便于复现,摘要还能进一步明确具体镜像内容。 标签便于人理解版本,但仓库中的标签可能被重新指向其他内容。摘要对应具体清单,更适合记录一次部署实际使用的镜像,便于后续审计和复现。
继续阅读同一个镜像可以创建多个容器,每个容器的可写层彼此独立。重新创建容器不会自动继承另一个容器临时写入的内容,因此镜像不能被当作运行数据的保存位置。
继续阅读