EXPLORE · 循迹而来

Docker

FOLLOW YOUR CURIOSITY

把同一个话题,读得更深。

这个话题下有 4 篇手记。

SpringBoot优雅停机实战

399 阅读

发版时偶发的 502 往往不是代码抛出的,而是停机链条上某个环节没有接上。本文用 Spring Boot 2.7 与 Tomcat 9 做对照实验,以 SIGTERM 为零点记录进行中的请求、新连接、keep-alive 连接和 SSE 的实际表现,说明优雅停机只保护已进入应用的请求;再依次排查启动脚本缺少 exec 导致 JVM 收不到信号、timeout-per-shutdown-phase 并非硬上限、Kubernetes preStop 与宽限期的预算,以及 Nginx 对 GET 与 POST 重试行为的差异,最后给出长连接收尾、线程池等待和发版期间的验证方法。

Too many open files排障实战

306 阅读

“Too many open files”并不意味着磁盘文件太多,也不一定靠调大 ulimit 就能解决。本文从 Linux 文件描述符的作用出发,区分进程软硬限制、系统文件句柄上限与 inotify 配额,通过 /proc、lsof 和受控实验定位资源耗尽原因,解释 systemd 与 Docker 配置为何看似修改却没有生效,并结合 Java 文件流示例展示资源泄漏的修复方法。最后通过容量预算、增长趋势和故障路径回归,建立从报错识别、现场取证到修复验证的完整排障流程。

用 Docker 部署 ES 和 Kibana 并导入 MySQL 数据

1321 阅读

本文详细演示了在已装 Docker 的服务器上,使用 Docker 部署单节点 Elasticsearch(7.12.1)和 Kibana(7.12.1),包括创建专用网络、加载镜像、配置容器参数及端口映射。随后通过 Kibana 的 DevTools 界面验证 ES 连接,并使用 MyBatis‑Plus 编写 Java 示例代码,将 MySQL 中的酒店数据批量转换为文档(HotelDoc),利用 RestHighLevelClient 的 BulkRequest 写入名为 hotel 的索引。最终在 Kibana 页面成功展示导入的数据,实现 MySQL 数据在 Elasticsearch 与 Kibana 可视化的完整流程。

Docker 实时查看和搜索容器日志

1312 阅读

本文介绍了在 Docker 中实时查看容器日志的常用命令。使用 `docker logs -f --tail 10 <容器>` 可实时刷新最新 10 行;仅查看最新 10 行则用 `docker logs --tail 10 <容器>` 或 `docker logs <容器> | tail -n 10`。若需查看日志开头的前 10 行,可使用 `docker logs <容器> | head -n 10`。通过管道结合 `grep` 可以在日志中搜索关键字,如 `docker logs <容器> | grep 'ERROR'`,进一步配合 `tail -n 2` 只获取最新的两条错误记录。上述命令简洁高效,适用于快速定位和监控容器日志。