<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Docker on OHTLY Blog</title>
    <link>https://blog.ohtly.com/tags/docker/</link>
    <description>Recent content in Docker on OHTLY Blog</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 29 May 2026 17:00:05 +0800</lastBuildDate>
    <atom:link href="https://blog.ohtly.com/tags/docker/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>FaceFusion 3.6.1 安装和使用方式：Web UI 和 Headless</title>
      <link>https://blog.ohtly.com/posts/2026-05-29-facefusion-guide/</link>
      <pubDate>Fri, 29 May 2026 17:00:05 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-29-facefusion-guide/</guid>
      <description>&lt;p&gt;FaceFusion 是一个开源的、业界领先的人脸操作平台，支持换脸、画质增强、唇形同步等功能。基于 Python + ONNX Runtime，提供 GPU 加速推理，同时提供 Web UI 交互界面和 headless 命令行模式。&lt;/p&gt;</description>
    </item>
    <item>
      <title>用 Prometheus 监控 Docker CouchDB 实例</title>
      <link>https://blog.ohtly.com/posts/2026-05-16-docker-couchdb-prometheus-monitoring/</link>
      <pubDate>Sat, 16 May 2026 10:00:00 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-16-docker-couchdb-prometheus-monitoring/</guid>
      <description>&lt;p&gt;最近在项目中使用了 CouchDB 作为文档数据库，考虑到生产环境的需求，研究了一套基于 Prometheus 的监控方案。这套方案全部跑在 Docker 环境下，现在整理成文，供有需要的同学参考。&lt;/p&gt;</description>
    </item>
    <item>
      <title>GPU 自动巡检与自愈：从掉卡到飞书通知的自动化链路</title>
      <link>https://blog.ohtly.com/posts/2026-05-06-gpu-auto-health-check/</link>
      <pubDate>Tue, 05 May 2026 22:30:00 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-06-gpu-auto-health-check/</guid>
      <description>&lt;p&gt;GPU 在虚拟化直通（Passthrough）环境下运行时，偶尔会出现驱动丢失、NVML 报错等问题，导致容器内无法使用 GPU。本文介绍一个轻量级的自动巡检自愈方案，从检测到修复再到飞书通知，全自动闭环。&lt;/p&gt;&#xA;&lt;img src=&#34;https://blog.ohtly.com/images/飞书.png&#34; alt=&#34;飞书告警通知&#34; style=&#34;max-width: none !important; width: auto; height: auto; display: block; margin-left: 0; border: 1px solid #999;&#34;&gt;&#xA;&lt;h2 id=&#34;问题背景&#34;&gt;&#xA;  问题背景&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e9%97%ae%e9%a2%98%e8%83%8c%e6%99%af&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;在 PVE 虚拟机中通过 PCIe Passthrough 直通 NVIDIA GPU 时，容器内偶尔会出现：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Failed to initialize NVML: Unknown Error&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;重启容器后可短暂恢复，但一段时间后再次失效。这类问题在虚拟化环境中难以彻底根治（涉及 ASPM 电源管理、驱动状态等问题），需要一个主动巡检 + 自动修复的兜底机制。&lt;/p&gt;&#xA;&lt;h2 id=&#34;架构总览&#34;&gt;&#xA;  架构总览&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%9e%b6%e6%9e%84%e6%80%bb%e8%a7%88&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;graph LR&#xA;    GC[gpu-checker&lt;br/&gt;每 60s 巡检] --&gt;|docker exec nvidia-smi| OS[GPU 应用容器]&#xA;    GC --&gt;|异常| A[自动修复]&#xA;    A --&gt;|1.告警| AT[alert-transformer]&#xA;    A --&gt;|2.重启| OS&#xA;    A --&gt;|3.重检| B{恢复?}&#xA;    B --&gt;|是| AT&#xA;    B --&gt;|否| C[人工介入]&#xA;    AT --&gt;|hooks| OC[OpenClaw]&#xA;    OC --&gt;|飞书机器人| FS[飞书通知]&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;部署-gpu-checker&#34;&gt;&#xA;  部署 gpu-checker&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e9%83%a8%e7%bd%b2-gpu-checker&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;巡检容器是一个独立的 Docker 容器，使用 &lt;code&gt;docker:cli&lt;/code&gt; 镜像，通过挂载 docker.sock 来操作宿主机上的其他容器：&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 DCGM-Exporter 实现 GPU 智能告警</title>
      <link>https://blog.ohtly.com/posts/2026-05-06-dcgm-exporter-gpu-alert/</link>
      <pubDate>Tue, 05 May 2026 21:53:58 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-05-06-dcgm-exporter-gpu-alert/</guid>
      <description>&lt;p&gt;GPU 是生产环境中重要的计算资源，温度过高、显存泄漏、硬件故障等问题如果不及时发现，可能影响线上服务。本文记录一套完整的 GPU 监控告警方案，从指标采集到飞书推送的全自动链路。&lt;/p&gt;&#xA;&lt;h2 id=&#34;监控目标&#34;&gt;&#xA;  监控目标&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e7%9b%91%e6%8e%a7%e7%9b%ae%e6%a0%87&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;维度&lt;/th&gt;&#xA;          &lt;th&gt;指标&lt;/th&gt;&#xA;          &lt;th&gt;告警阈值&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;温度&lt;/td&gt;&#xA;          &lt;td&gt;GPU 核心温度 / 显存温度&lt;/td&gt;&#xA;          &lt;td&gt;&amp;gt; 83°C / &amp;gt; 100°C&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;显存&lt;/td&gt;&#xA;          &lt;td&gt;VRAM 使用率&lt;/td&gt;&#xA;          &lt;td&gt;&amp;gt; 90%&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;功耗&lt;/td&gt;&#xA;          &lt;td&gt;GPU 功率&lt;/td&gt;&#xA;          &lt;td&gt;&amp;gt; 150W&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;硬件健康&lt;/td&gt;&#xA;          &lt;td&gt;PCIe 重连、行重映射错误&lt;/td&gt;&#xA;          &lt;td&gt;任何异常&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;可用性&lt;/td&gt;&#xA;          &lt;td&gt;DCGM-Exporter 进程是否存活&lt;/td&gt;&#xA;          &lt;td&gt;宕机 1m&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;架构总览&#34;&gt;&#xA;  架构总览&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%9e%b6%e6%9e%84%e6%80%bb%e8%a7%88&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;flowchart LR&#xA;    A[DCGM-Exporter&lt;br/&gt;monkey:9400] --&gt;|scrape| B[Prometheus&lt;br/&gt;robin:9090]&#xA;    B --&gt;|alert rules| C[Alertmanager&lt;br/&gt;robin:9093]&#xA;    C --&gt;|webhook| D[alert-transformer&lt;br/&gt;rivo:9091]&#xA;    D --&gt;|hooks| E[OpenClaw]&#xA;    E --&gt;|飞书机器人| F[飞书]&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;部署-dcgm-exporter&#34;&gt;&#xA;  部署 DCGM-Exporter&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e9%83%a8%e7%bd%b2-dcgm-exporter&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;在 GPU 节点上通过 Docker 部署 DCGM-Exporter。使用 DaoCloud 镜像加速国内拉取：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Elasticsearch IK 中文分词索引环境的部署</title>
      <link>https://blog.ohtly.com/posts/2026-04-16-elasticsearch-ik/</link>
      <pubDate>Thu, 16 Apr 2026 19:58:59 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-04-16-elasticsearch-ik/</guid>
      <description>&lt;h1 id=&#34;elasticsearch-中文分词索引环境的部署&#34;&gt;&#xA;  Elasticsearch 中文分词索引环境的部署&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#elasticsearch-%e4%b8%ad%e6%96%87%e5%88%86%e8%af%8d%e7%b4%a2%e5%bc%95%e7%8e%af%e5%a2%83%e7%9a%84%e9%83%a8%e7%bd%b2&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;背景&#34;&gt;&#xA;  背景&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e8%83%8c%e6%99%af&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;在 RAG（检索增强生成）和中文搜索场景中，Elasticsearch 默认的标准分词器无法正确处理中文文本，会将每个汉字单独切分，导致搜索效果极差。IK 分词器（analysis-ik）是 Elasticsearch 最流行的中文分词插件，支持两种分词模式：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ik_smart&lt;/code&gt;：最少切分（粗粒度），适合搜索场景&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;ik_max_word&lt;/code&gt;：最细粒度切分，适合分析场景&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;本文记录在 Docker Compose 环境下部署带 IK 分词器的 Elasticsearch 单节点服务，并配置安全认证。&lt;/p&gt;&#xA;&lt;h2 id=&#34;版本选择说明&#34;&gt;&#xA;  版本选择说明&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e7%89%88%e6%9c%ac%e9%80%89%e6%8b%a9%e8%af%b4%e6%98%8e&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;为什么选择 Elasticsearch 8.x 而不是 9.x？&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;本文部署的是 Elasticsearch 8.17.4，主要原因是当时 IK 分词器尚未支持 Elasticsearch 9.x。&lt;/p&gt;&#xA;&lt;p&gt;根据 &lt;a href=&#34;https://github.com/infinilabs/analysis-ik&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;infinilabs/analysis-ik&lt;/a&gt; 官方发布页面的版本记录：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;IK 插件对 ES 8.x 的支持：持续更新到 8.19.x&lt;/li&gt;&#xA;&lt;li&gt;IK 插件对 ES 9.x 的支持：从 2025 年 5 月才陆续发布（9.0.0 于 2025-05-17 发布）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;因此，在 2026 年初进行技术选型时，考虑到 IK 插件的稳定性和生态兼容性，选择了 ES 8.17.4。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
