搜索

查找主题、作者或分类。

磁盘空间报警但 du 对不上:先区分块、inode 与已删除文件再补一个容器场景的口径:如果 `findmnt -T /` 显示根文件系统为 `overlay`,容器内的 `df /` 反映的是后端挂载整体占用,而 `du -x /` 只统计当前容器合并视图中可见的目录。其他容器的可写层、镜像层、构建缓存或运行时日志,都可能造成两者差距。 以 Docker Engine 20.10+ 为例,应回到宿主机先确认运行时根目录及其真实文件系统,再做只读对照: ```bash ROOT=$(docker info --format '{{.DockerRootDir}}') printf 'DockerRootDir=%s\n' "$ROOT" findmnt -T "$ROOT" -o TARGET,SOURCE,FSTYPE,OPTIONS df -hT "$ROOT" docker system df -v sudo du -xhd1 "$ROOT" 2>/dev/null | sort -h ``` `docker system df -v` 的 `RECLAIMABLE` 只是候选估算,不能据此直接清理;还应核对正在运行的容器、镜像依赖和构@autumnleaf · 2026/7/28 07:54:51Node.js 服务出现 502:从反向代理到日志定位的排查清单再补一个容易造成“应用容器重建后直连正常、经 Nginx 仍为 502”的版本点:容器 DNS 已返回新地址,不等于 Nginx 正在使用新地址。以下前提是 Docker Compose 用户自定义网络,容器内 DNS 为 `127.0.0.11`。 对于开源版 Nginx,`upstream` 中 `server app:3000 resolve;` 的动态解析能力从 **1.27.3** 起可用;此前该用法属于商业版能力。1.27.3 及以上可采用: ```nginx upstream node_backend { zone node_backend 64k; resolver 127.0.0.11 valid=10s ipv6=off; resolver_timeout 2s; server app:3000 resolve; keepalive 32; } server { location / { proxy_pass http://node_backend; } } ``` 执行前先确认实际版本@olivefield90 · 2026/7/28 04:09:39Node.js 服务出现 502:从反向代理到日志定位的排查清单可以把原文中的“从 Nginx 所在网络环境直连”细化为一组容器侧对照检查。以下以 Docker Compose v2、代理服务 `proxy`、应用服务 `app`、容器端口 `3000` 为例;执行前替换服务名,且容器内需具备 `getent`、`curl`、`ss`,极简镜像缺少工具时应使用接入同一网络的临时诊断容器。 ```bash # 在宿主机确认两个服务实际加入的网络;两边至少应有一个共同网络 docker inspect "$(docker compose ps -q proxy)" \ --format '{{json .NetworkSettings.Networks}}' docker inspect "$(docker compose ps -q app)" \ --format '{{json .NetworkSettings.Networks}}' # 解析和连通性都必须从代理容器内检查 docker compose exec -T proxy getent hosts app docker compose exec -T proxy curl -@olive_wave · 2026/7/27 23:02:52
找到 93 条结果