<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Docker &#8211; 95博客</title>
	<atom:link href="https://95bok.cn/tag/docker/feed/" rel="self" type="application/rss+xml" />
	<link>https://95bok.cn</link>
	<description>云烟</description>
	<lastBuildDate>Thu, 09 Apr 2026 09:31:51 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://95bok.cn/wp-content/uploads/2025/11/cropped-1740116058152-32x32.jpg</url>
	<title>Docker &#8211; 95博客</title>
	<link>https://95bok.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Win11/Win10 安装 Docker Desktop 完整避坑指南：WSL2、权限、数据卷迁移</title>
		<link>https://95bok.cn/windows-docker-desktop-complete-guide/</link>
					<comments>https://95bok.cn/windows-docker-desktop-complete-guide/#respond</comments>
		
		<dc:creator><![CDATA[云烟]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 07:07:41 +0000</pubDate>
				<category><![CDATA[Docker容器]]></category>
		<category><![CDATA[Windows运维]]></category>
		<category><![CDATA[未分类]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[WSL2]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[避坑]]></category>
		<guid isPermaLink="false">https://95bok.cn/windows-docker-desktop-complete-guide/</guid>

					<description><![CDATA[Windows 装 Docker Desktop 看起来简单，但 WSL2 的坑、权限的问题、数据卷迁移的麻烦 ... <a title="Win11/Win10 安装 Docker Desktop 完整避坑指南：WSL2、权限、数据卷迁移" class="read-more" href="https://95bok.cn/windows-docker-desktop-complete-guide/" aria-label="阅读 Win11/Win10 安装 Docker Desktop 完整避坑指南：WSL2、权限、数据卷迁移">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p>Windows 装 Docker Desktop 看起来简单，但 WSL2 的坑、权限的问题、数据卷迁移的麻烦，每一个都够折腾一阵子。</p>
<hr />
<h2>先确认你的版本</h2>
<p>按 <code>Win + R</code> 输入 <code>winver</code> 看版本。Win11 基本都行。Win10 需要 2004 以上（Build 19041）。</p>
<p>家庭版也能装 Docker Desktop，以前不行，现在 WSL2 后端全家桶都支持了。</p>
<hr />
<h2>装 WSL2</h2>
<p>管理员 PowerShell：</p>
<pre><code class="language-powershell">wsl --install
wsl --update</code></pre>
<p>这条命令会开启 WSL 和虚拟机平台功能，然后安装 Ubuntu 默认发行版。重启电脑。</p>
<p>重启后设一下用户名密码，然后确认是 WSL2 而不是 WSL1：</p>
<pre><code class="language-powershell">wsl -l -v
# 应该看到 VERSION 列是 2</code></pre>
<p>如果是 1，转成 2：<code>wsl --set-version Ubuntu 2</code></p>
<p>设 WSL2 为默认：<code>wsl --set-default-version 2</code></p>
<hr />
<h2>装 Docker Desktop</h2>
<p>去 Docker 官网下载安装包，双击安装。装完重启。</p>
<p>首次启动会让你同意条款、选设置。默认就行。注意 Settings → Resources → WSL Integration 里确保你的 WSL 发行版开关是开的。</p>
<hr />
<h2>WSL2 资源限制（重点）</h2>
<p>WSL2 默认能吃掉你所有内存。8G 的机器它最多能吃到 8G，直接卡死。</p>
<p>在用户目录下创建 <code>%USERPROFILE%.wslconfig</code>：</p>
<pre><code class="language-ini">[wsl2]
memory=4GB
processors=4
swap=2GB
localhostForwarding=true</code></pre>
<p>设完重启 WSL：<code>wsl --shutdown</code>，再打开就行。</p>
<p>4 给 WSL2，留 4G 给 Windows 自己用。</p>
<hr />
<h2>镜像加速</h2>
<p>Docker 默认拉取 Docker Hub，国内慢。Settings → Docker Engine → 加 registry-mirrors：</p>
<pre><code class="language-json">{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me"
  ]
}</code></pre>
<p>Apply &amp; restart。</p>
<hr />
<h2>数据卷迁移</h2>
<p>WSL2 的数据存在虚拟磁盘里：<code>%LOCALAPPDATA%Dockerwsldataext4.vhdx</code>。随着用镜像越来越多，这个文件会越来越大。</p>
<p>迁移到其他盘：</p>
<pre><code class="language-powershell"># 停止 Docker 和 WSL
wsl --shutdown

# 导出
wsl --export docker-desktop-data "D:docker-data.tar"

# 注销原来的
wsl --unregister docker-desktop-data

# 导入到新位置
wsl --import docker-desktop-data "D:DockerData" "D:docker-data.tar" --version 2</code></pre>
<p>压缩变大的 vhdx 文件：</p>
<pre><code class="language-powershell">wsl --shutdown
Optimize-VHD -Path "$env:LOCALAPPDATADockerwsldataext4.vhdx" -Mode Full</code></pre>
<p>这个命令需要 Hyper-V 模块（Win10/11 专业版自带，家庭版没有）。</p>
<hr />
<h2>常见问题</h2>
<p><strong>&#8220;Docker Desktop requires the Server core with containers feature&#8221;</strong> — WSL2 没装好，<code>wsl --install</code> 然后重启。</p>
<p><strong>&#8220;WSL 2 installation is incomplete&#8221;</strong> — 去 <code>https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi</code> 下载更新。</p>
<p><strong>WSL 里访问不了 Windows 文件</strong> — 确认 <code>localhostForwarding=true</code>。WSL 里访问 Windows 文件用 <code>/mnt/c/</code>。</p>
<p><strong>Docker Desktop 启动后一直 &#8220;Docker Desktop is starting&#8221;</strong> — 资源不够。加大 <code>.wslconfig</code> 的 memory 限制，或者关掉其他吃内存的程序。</p>
<hr />
<h2>卸载（干净卸载）</h2>
<p>光在控制面板卸载是不够的：</p>
<pre><code class="language-powershell"># 卸载 Docker Desktop
wsl --shutdown
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data

# 删残留
Remove-Item "$env:APPDATADocker" -Recurse -Force
Remove-Item "$env:LOCALAPPDATADocker" -Recurse -Force</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://95bok.cn/windows-docker-desktop-complete-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker 运维实战：备份、迁移、端口映射、日志监控、资源限制</title>
		<link>https://95bok.cn/docker-operations-backup-migrate-monitoring/</link>
					<comments>https://95bok.cn/docker-operations-backup-migrate-monitoring/#respond</comments>
		
		<dc:creator><![CDATA[云烟]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 06:05:39 +0000</pubDate>
				<category><![CDATA[Docker容器]]></category>
		<category><![CDATA[未分类]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[备份]]></category>
		<category><![CDATA[监控]]></category>
		<category><![CDATA[运维]]></category>
		<guid isPermaLink="false">https://95bok.cn/docker-operations-backup-migrate-monitoring/</guid>

					<description><![CDATA[Docker 跑起来只是第一步。备份、迁移、日志、资源限制——这些日常运维的东西，实际用到了才知道有多重要。  ... <a title="Docker 运维实战：备份、迁移、端口映射、日志监控、资源限制" class="read-more" href="https://95bok.cn/docker-operations-backup-migrate-monitoring/" aria-label="阅读 Docker 运维实战：备份、迁移、端口映射、日志监控、资源限制">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p>Docker 跑起来只是第一步。备份、迁移、日志、资源限制——这些日常运维的东西，实际用到了才知道有多重要。</p>
<hr />
<h2>数据备份</h2>
<h3>Volume 备份</h3>
<pre><code class="language-bash">docker run --rm 
  -v ollama_ollama-data:/data 
  -v $(pwd):/backup 
  alpine tar czf /backup/ollama-backup-$(date +%F).tar.gz -C /data .</code></pre>
<p>恢复就是反过来 tar xzf。</p>
<h3>compose 文件放 Git</h3>
<p>配置文件比数据更重要——没有 compose 文件，连容器都起不来。建议放 Git 仓库里管理。</p>
<h3>自动备份脚本</h3>
<p>每周定时跑一次，清理 30 天前的旧备份：</p>
<pre><code class="language-bash">#!/bin/bash
BACKUP_DIR="/data/backups/docker"
mkdir -p $BACKUP_DIR
for vol in $(docker volume ls -q); do
  docker run --rm -v $vol:/data:ro -v $BACKUP_DIR:/backup alpine tar czf /backup/${vol}-$(date +%F).tar.gz -C /data .
done
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete</code></pre>
<p>加 cron：<code>0 3 * * 0 /usr/local/bin/docker-backup.sh</code></p>
<hr />
<h2>迁移到另一台服务器</h2>
<pre><code class="language-bash"># 旧服务器
cd /opt/ai-stack
docker compose down
tar czf /tmp/ai-stack.tar.gz /opt/ai-stack
scp /tmp/ai-stack.tar.gz root@新IP:/tmp/

# 新服务器
tar xzf /tmp/ai-stack.tar.gz -C /
curl -fsSL https://get.docker.com | sh
cd /opt/ai-stack &amp;&amp; docker compose up -d</code></pre>
<p>模型数据也在 tar 里的话，不需要重新拉。直接能用。</p>
<hr />
<h2>端口映射</h2>
<p>只监听本机最安全：<code>127.0.0.1:3000:8080</code>。外面通过 Nginx 反代访问。</p>
<p>冲突排查：<code>ss -tlnp | grep 3000</code> 看哪个进程占了端口。或者 <code>docker ps --format "table {{.Names}}t{{.Ports}}"</code>。</p>
<hr />
<h2>日志管理</h2>
<p><strong>限制日志大小。</strong>这个很重要，不限制的话跑几个月吃满磁盘：</p>
<pre><code class="language-bash">cat &gt; /etc/docker/daemon.json &lt;&lt; &#039;EOF&#039;
{
  &quot;log-driver&quot;: &quot;json-file&quot;,
  &quot;log-opts&quot;: {
    &quot;max-size&quot;: &quot;50m&quot;,
    &quot;max-file&quot;: &quot;3&quot;
  }
}
EOF
systemctl restart docker</code></pre>
<p>每个容器最多 3 个日志文件，每个 50MB。</p>
<h3>清理旧日志</h3>
<pre><code class="language-bash">for f in $(find /var/lib/docker/containers/ -name "*.log"); do
  truncate -s 0 $f
done</code></pre>
<hr />
<h2>资源限制</h2>
<p>默认容器能吃多少吃多少。Ollama 把内存吃光，MySQL 和 Nginx 也会跟着挂。限制一下：</p>
<pre><code class="language-yaml">services:
  ollama:
    deploy:
      resources:
        limits:
          memory: 8G
          cpus: "4"
        reservations:
          memory: 4G</code></pre>
<p>这样即使 Ollama 出问题，也不会把整台机器拖死。</p>
<hr />
<h2>健康检查</h2>
<pre><code class="language-yaml">services:
  ollama:
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:11434"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s</code></pre>
<p>查看状态：<code>docker ps --format "table {{.Names}}t{{.Status}}"</code></p>
<hr />
<h2>常用命令</h2>
<p><code>docker stats</code> 看实时资源占用。<code>docker system df</code> 看磁盘使用。</p>
<p>更新服务：<code>docker compose pull &amp;&amp; docker compose up -d</code>。</p>
<p>清理悬空镜像：<code>docker image prune</code>。慎用 <code>docker system prune -a</code>，会删掉所有不用的镜像。</p>
<p>Ollama 的模型数据在 volume 里，不在 Docker image 里。清理 Docker 镜像不会删模型。模型用 <code>ollama rm 模型名</code> 删。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://95bok.cn/docker-operations-backup-migrate-monitoring/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AnythingLLM 本地部署教程：上传文档就能问的 AI 知识库，Docker 一键部署</title>
		<link>https://95bok.cn/anythingllm-local-deployment-docker/</link>
					<comments>https://95bok.cn/anythingllm-local-deployment-docker/#respond</comments>
		
		<dc:creator><![CDATA[云烟]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 06:02:02 +0000</pubDate>
				<category><![CDATA[Docker容器]]></category>
		<category><![CDATA[未分类]]></category>
		<category><![CDATA[本地AI]]></category>
		<category><![CDATA[AnythingLLM]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Ollama]]></category>
		<category><![CDATA[知识库]]></category>
		<guid isPermaLink="false">https://95bok.cn/anythingllm-local-deployment-docker/</guid>

					<description><![CDATA[AnythingLLM 跟之前讲的 LangChain RAG 干的是同一件事——让 AI 基于你的文档回答问 ... <a title="AnythingLLM 本地部署教程：上传文档就能问的 AI 知识库，Docker 一键部署" class="read-more" href="https://95bok.cn/anythingllm-local-deployment-docker/" aria-label="阅读 AnythingLLM 本地部署教程：上传文档就能问的 AI 知识库，Docker 一键部署">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p>AnythingLLM 跟之前讲的 LangChain RAG 干的是同一件事——让 AI 基于你的文档回答问题。区别是它不用写代码，开箱即用。</p>
<hr />
<h2>跟 LangChain 的区别</h2>
<p>LangChain RAG 是自己写 Python，什么都能定制但得会编程。AnythingLLM 是成品工具，上传文档就能问，还支持多用户、自带 API。</p>
<p>如果只是&#8221;传文档→AI 回答&#8221;，AnythingLLM 够了。要精细控制切分策略、自定义检索逻辑，才需要上 LangChain。</p>
<hr />
<h2>Docker 一行命令</h2>
<pre><code class="language-bash">mkdir -p /opt/anythingllm
docker run -d -p 3001:3000 
  --cap-add SYS_ADMIN 
  -v /opt/anythingllm/storage:/app/server/storage 
  -e STORAGE_DIR="/app/server/storage" 
  --name anythingllm 
  mintplexlabs/anythingllm:latest</code></pre>
<p>访问 <code>http://你的IP:3001</code>。</p>
<p>想一步到位用 compose 也行：</p>
<pre><code class="language-bash">cat &gt; docker-compose.yml &lt;&lt; &#039;EOF&#039;
version: &quot;3.8&quot;
services:
  anythingllm:
    image: mintplexlabs/anythingllm:latest
    container_name: anythingllm
    restart: unless-stopped
    ports:
      - &quot;3001:3000&quot;
    cap_add:
      - SYS_ADMIN
    volumes:
      - ./storage:/app/server/storage
    environment:
      - STORAGE_DIR=/app/server/storage
      - LLM_PROVIDER=ollama
      - OLLAMA_BASE_PATH=http://host.docker.internal:11434
      - OLLAMA_MODEL_PREF=qwen2.5:7b
      - EMBEDDING_ENGINE=ollama
      - EMBEDDING_BASE_PATH=http://host.docker.internal:11434
      - EMBEDDING_MODEL_PREF=nomic-embed-text
EOF
docker compose up -d</code></pre>
<hr />
<h2>初始化</h2>
<p>首次访问会让你：</p>
<ol>
<li>设管理员密码</li>
<li>选 LLM 提供商 → Ollama</li>
<li>填地址 → <code>http://host.docker.internal:11434</code> 或 <code>http://172.17.0.1:11434</code></li>
<li>选模型 → qwen2.5:7b</li>
<li>选嵌入模型 → nomic-embed-text（记得先 <code>ollama pull nomic-embed-text</code>）</li>
</ol>
<p>Ollama 得监听 0.0.0.0，127.0.0.1 容器里连不上。</p>
<hr />
<h2>用</h2>
<p>进系统后：</p>
<ol>
<li>New Workspace → 起名字</li>
<li>Upload → 丢文档进去</li>
<li>支持 PDF、TXT、Markdown、Word、网页 URL、GitHub 链接、YouTube 字幕、CSV</li>
<li>它自动分块、向量化、建索引</li>
<li>聊天框提问，AI 基于文档回答，下方显示引用来源</li>
</ol>
<p>多用户管理：Users → New User。可以给不同用户分配不同的 Workspace。</p>
<hr />
<h2>资源</h2>
<p>自身大约 200~400MB。向量库用内置的 LanceDB，零额外开销。加上 Ollama 7B 模型，总共 5~6G。比 Dify 轻不少，8G 机器跑 3B 模型没问题。</p>
<p>数据存在 <code>/opt/anythingllm/storage</code>，备份这个目录就行。</p>
<hr />
<h2>选 AnythingLLM 还是 Dify？</h2>
<p>只需要知识库问答，AnythingLLM 更轻量，一条命令就起。要工作流编排、Agent、可视化搭建应用，选 Dify。</p>
<p>两个都装不冲突。AnythingLLM 管知识库，Dify 做应用开发，各干各的。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://95bok.cn/anythingllm-local-deployment-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>宝塔面板 + Docker 部署本地 AI 全家桶：端口规划、Nginx 反代、避坑指南</title>
		<link>https://95bok.cn/baota-docker-ai-deployment-guide/</link>
					<comments>https://95bok.cn/baota-docker-ai-deployment-guide/#respond</comments>
		
		<dc:creator><![CDATA[云烟]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 06:02:02 +0000</pubDate>
				<category><![CDATA[Docker容器]]></category>
		<category><![CDATA[未分类]]></category>
		<category><![CDATA[本地AI]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Ollama]]></category>
		<category><![CDATA[宝塔面板]]></category>
		<category><![CDATA[避坑]]></category>
		<category><![CDATA[部署]]></category>
		<guid isPermaLink="false">https://95bok.cn/baota-docker-ai-deployment-guide/</guid>

					<description><![CDATA[用宝塔面板的服务器上跑 AI 工具，有些坑比较特别。这篇记录怎么在宝塔环境里把 Ollama、Docker 这 ... <a title="宝塔面板 + Docker 部署本地 AI 全家桶：端口规划、Nginx 反代、避坑指南" class="read-more" href="https://95bok.cn/baota-docker-ai-deployment-guide/" aria-label="阅读 宝塔面板 + Docker 部署本地 AI 全家桶：端口规划、Nginx 反代、避坑指南">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p>用宝塔面板的服务器上跑 AI 工具，有些坑比较特别。这篇记录怎么在宝塔环境里把 Ollama、Docker 这些跑起来，不跟宝塔自带的服务打架。</p>
<hr />
<h2>为什么宝塔用户需要 Docker</h2>
<p>宝塔本身能管 PHP、Nginx、MySQL，但 AI 工具基本都用 Docker 部署。宝塔对 Docker 的支持靠&#8221;Docker 管理器&#8221;插件，说实话不太好用，偶尔还跟宝塔自己的 Nginx 冲突。</p>
<p>我的建议：宝塔管传统服务（网站、数据库），AI 工具用命令行管 Docker。两边各干各的，互不干扰。</p>
<hr />
<h2>装 Docker</h2>
<pre><code class="language-bash">curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
apt install -y docker-compose-plugin</code></pre>
<p>装完验证 <code>docker compose version</code>。</p>
<h3>Ollama 的装法</h3>
<p>Ollama 不一定非要用 Docker，直接装更省事：</p>
<pre><code class="language-bash">curl -fsSL https://ollama.com/install.sh | sh</code></pre>
<p>默认跑在 <code>127.0.0.1:11434</code>，不占 80/443，跟宝塔完全兼容。要局域网访问就改环境变量 <code>OLLAMA_HOST=0.0.0.0</code>。</p>
<hr />
<h2>用宝塔 Nginx 反代 Docker 容器</h2>
<p>这是关键。假设你想用 <code>https://ai.95bok.cn</code> 访问 Open WebUI：</p>
<p>第一步，宝塔添加站点：域名 <code>ai.95bok.cn</code>，PHP 版本选纯静态，不需要数据库。</p>
<p>第二步，站点设置 → 反向代理 → 添加：代理名随便填，目标 URL <code>http://127.0.0.1:3000</code>，发送域名 <code>$host</code>。</p>
<p>第三步，手动优化 Nginx 配置（站点设置 → 配置文件），location 块里加上 WebSocket 支持：</p>
<pre><code class="language-nginx">proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 100m;</code></pre>
<p>这三行不加的话，Open WebUI 的实时通信会出问题。宝塔自动生成的反代配置经常漏掉这个。</p>
<p>第四步，开 SSL。站点设置 → SSL → Let&#8217;s Encrypt → 申请。</p>
<hr />
<h2>端口规划</h2>
<p>宝塔环境端口容易冲突，提前排好：</p>
<p>宝塔面板 8888，网站 80/443，phpMyAdmin 888，MySQL 3306——这些别动。</p>
<p>Docker 容器用其他端口：Ollama 11434，Open WebUI 3000，n8n 5678，Dify 8080，AnythingLLM 3001。</p>
<p>原则：Docker 容器只绑 127.0.0.1，外面通过宝塔 Nginx 反代访问。安全好管理，SSL 统一由宝塔处理。</p>
<hr />
<h2>防火墙</h2>
<p>宝塔 → 安全 → 放行端口。推荐只开 80/443 和 SSH 端口，其他全通过 Nginx 反代走。不要直接把 Docker 端口开放到公网。</p>
<hr />
<h2>几个踩过的坑</h2>
<p><strong>端口冲突。</strong>宝塔已占 80/443，Docker Nginx 不能再绑。解决：用宝塔 Nginx 做反代，Docker 容器不暴露 80/443。</p>
<p><strong>宝塔改配置覆盖反代。</strong>在宝塔站点设置里改 PHP 版本、加伪静态时，宝塔会重写 Nginx 配置。用宝塔的反向代理功能添加，不要手动改配置文件。</p>
<p><strong>Docker 容器重启后没自动起。</strong>compose 文件里加 <code>restart: unless-stopped</code>，然后 <code>systemctl enable docker</code>。</p>
<p><strong>Docker 访问宝塔的 MySQL。</strong>通过 Docker 网关 IP <code>172.17.0.1</code> 访问，地址填 <code>172.17.0.1:3306</code>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://95bok.cn/baota-docker-ai-deployment-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>n8n 自动化工作流部署教程：Docker 一键搭建 + 对接 Ollama 实现 AI 自动化</title>
		<link>https://95bok.cn/n8n-automation-docker-ollama/</link>
					<comments>https://95bok.cn/n8n-automation-docker-ollama/#respond</comments>
		
		<dc:creator><![CDATA[云烟]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 06:00:16 +0000</pubDate>
				<category><![CDATA[Docker容器]]></category>
		<category><![CDATA[未分类]]></category>
		<category><![CDATA[本地AI]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[n8n]]></category>
		<category><![CDATA[Ollama]]></category>
		<category><![CDATA[自动化]]></category>
		<guid isPermaLink="false">https://95bok.cn/n8n-automation-docker-ollama/</guid>

					<description><![CDATA[n8n 是个工作流自动化工具，把各种服务连起来不用写代码。对接 Ollama 之后，能做的事情就更多了——收到 ... <a title="n8n 自动化工作流部署教程：Docker 一键搭建 + 对接 Ollama 实现 AI 自动化" class="read-more" href="https://95bok.cn/n8n-automation-docker-ollama/" aria-label="阅读 n8n 自动化工作流部署教程：Docker 一键搭建 + 对接 Ollama 实现 AI 自动化">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p>n8n 是个工作流自动化工具，把各种服务连起来不用写代码。对接 Ollama 之后，能做的事情就更多了——收到邮件自动总结、RSS 自动翻译、定时生成报告等等。</p>
<hr />
<h2>部署</h2>
<pre><code class="language-bash">mkdir -p /opt/n8n &amp;&amp; cd /opt/n8n
cat &gt; docker-compose.yml &lt;&lt; &#039;EOF&#039;
version: &quot;3.8&quot;
services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - &quot;5678:5678&quot;
    volumes:
      - n8n-data:/home/node/.n8n
    environment:
      - GENERIC_TIMEZONE=Asia/Shanghai
      - TZ=Asia/Shanghai
volumes:
  n8n-data:
EOF
docker compose up -d</code></pre>
<p>访问 <code>http://你的IP:5678</code>，首次注册账号。</p>
<hr />
<h2>对接 Ollama</h2>
<p>n8n 从 1.30 版本内置了 Ollama 节点。版本不够的话：</p>
<pre><code class="language-bash">docker compose pull n8n &amp;&amp; docker compose up -d</code></pre>
<p>Credentials → Add Credential → 搜 Ollama → 填地址。</p>
<p>同机的话地址填 <code>http://172.17.0.1:11434</code>（Docker 网关）。Ollama 得监听 0.0.0.0，网关 IP 找法：</p>
<pre><code class="language-bash">docker network inspect bridge --format='{{range .IPAM.Config}}{{.Gateway}}{{end}}'</code></pre>
<hr />
<h2>写个工作流试试</h2>
<p>自动翻译流程：</p>
<ol>
<li>添加 Manual 触发器（测试用）</li>
<li>加 Ollama Chat Model 节点</li>
<li>选凭证和模型（qwen2.5:7b）</li>
<li>System Message 写：你是一个翻译助手。把输入的中文翻译成英文，只输出翻译结果。</li>
<li>把 Manual 的输出连到 Ollama 节点</li>
<li>执行，在 Manual 里输入要翻译的文字</li>
</ol>
<p>更实用的——RSS 自动翻译通知：</p>
<ul>
<li>Schedule 触发器：每天 9:00</li>
<li>RSS Feed Read 节点：填 RSS 地址</li>
<li>Ollama 翻译节点</li>
<li>Telegram/邮件/飞书通知节点</li>
</ul>
<p>节点之间用线连起来就行，像画流程图。</p>
<hr />
<h2>Webhook 触发</h2>
<p>工作流也可以被外部事件触发。加 Webhook 节点，n8n 给你一个 URL，任何 HTTP 请求到这个 URL 工作流就自动跑。</p>
<pre><code class="language-python">import requests
requests.post('http://localhost:5678/webhook/my-workflow', json={'data': '要处理的内容'})</code></pre>
<hr />
<h2>资源占用</h2>
<p>n8n 自身 300~500MB。加上 Ollama 7B 模型总共 5.5G 左右。16G 机器比较宽裕。</p>
<p>升级就 <code>docker compose pull &amp;&amp; docker compose up -d</code>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://95bok.cn/n8n-automation-docker-ollama/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker Compose 多服务编排实战：Ollama + Open WebUI + Nginx 反代一套搞定</title>
		<link>https://95bok.cn/docker-compose-ollama-open-webui-nginx/</link>
					<comments>https://95bok.cn/docker-compose-ollama-open-webui-nginx/#respond</comments>
		
		<dc:creator><![CDATA[云烟]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 05:53:45 +0000</pubDate>
				<category><![CDATA[Docker容器]]></category>
		<category><![CDATA[未分类]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker Compose]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Ollama]]></category>
		<category><![CDATA[部署]]></category>
		<guid isPermaLink="false">https://95bok.cn/docker-compose-ollama-open-webui-nginx/</guid>

					<description><![CDATA[上一篇分别讲了 Ollama 和 Open WebUI 怎么部署，这篇直接上全套：Ollama + Open  ... <a title="Docker Compose 多服务编排实战：Ollama + Open WebUI + Nginx 反代一套搞定" class="read-more" href="https://95bok.cn/docker-compose-ollama-open-webui-nginx/" aria-label="阅读 Docker Compose 多服务编排实战：Ollama + Open WebUI + Nginx 反代一套搞定">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p>上一篇分别讲了 Ollama 和 Open WebUI 怎么部署，这篇直接上全套：Ollama + Open WebUI + Nginx 反代，一套 docker-compose 搞定。</p>
<p>最终效果：访问 <code>https://ai.yourdomain.com</code> 就是 Open WebUI 聊天界面，后面 Ollama 自动对接，HTTPS 自动续签，一条命令启动一条命令停止。</p>
<hr />
<h2>环境要求</h2>
<p>Linux 系统，已装 Docker + Compose，一个域名指向服务器 IP，80 和 443 端口开着。</p>
<p>没装 Docker 的话：</p>
<pre><code class="language-bash">curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
apt install -y docker-compose-plugin</code></pre>
<hr />
<h2>项目结构</h2>
<pre><code>ai-stack/
├── docker-compose.yml
├── nginx/
│   ├── nginx.conf
│   ├── certs/          # SSL 证书
│   └── html/           # Let's Encrypt 验证
├── data/
│   ├── ollama/         # 模型数据
│   └── open-webui/     # WebUI 数据
└── .env</code></pre>
<pre><code class="language-bash">mkdir -p /opt/ai-stack/nginx/certs /opt/ai-stack/nginx/html
mkdir -p /opt/ai-stack/data/ollama /opt/ai-stack/data/open-webui
cd /opt/ai-stack</code></pre>
<hr />
<h2>compose 文件</h2>
<pre><code class="language-bash">cat &gt; docker-compose.yml &lt;&lt; &#039;EOF&#039;
version: &quot;3.8&quot;

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    volumes:
      - ./data/ollama:/root/.ollama
    environment:
      - OLLAMA_HOST=0.0.0.0
    networks:
      - ai-net

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    volumes:
      - ./data/open-webui:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - WEBUI_AUTH=True
    depends_on:
      - ollama
    networks:
      - ai-net

  nginx:
    image: nginx:alpine
    container_name: ai-nginx
    restart: unless-stopped
    ports:
      - &quot;80:80&quot;
      - &quot;443:443&quot;
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./nginx/certs:/etc/nginx/certs:ro
      - ./nginx/html:/usr/share/nginx/html:ro
    depends_on:
      - open-webui
      - ollama
    networks:
      - ai-net

networks:
  ai-net:
    driver: bridge
EOF</code></pre>
<p>三个服务在同一个 Docker 网络里，互相通过容器名通信。只有 Nginx 暴露端口到外面，内部完全隔离。</p>
<hr />
<h2>Nginx 配置</h2>
<pre><code class="language-bash">cat &gt; nginx/nginx.conf &lt;&lt; &#039;EOF&#039;
worker_processes auto;
events { worker_connections 1024; }

http {
    client_max_body_size 100m;

    server {
        listen 80;
        server_name _;
        location /.well-known/acme-challenge/ { root /usr/share/nginx/html; }
        location / { return 301 https://$host$request_uri; }
    }

    server {
        listen 443 ssl;
        server_name ai.yourdomain.com;  # 改成你的

        ssl_certificate /etc/nginx/certs/fullchain.pem;
        ssl_certificate_key /etc/nginx/certs/privkey.pem;
        ssl_protocols TLSv1.2 TLSv1.3;

        auth_basic &quot;AI Stack&quot;;
        auth_basic_user_file /etc/nginx/.htpasswd;

        location / {
            proxy_pass http://open-webui:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection &quot;upgrade&quot;;
        }

        location /ollama/ {
            proxy_pass http://ollama:11434/;
            proxy_buffering off;
            proxy_cache off;
            proxy_read_timeout 300s;
        }
    }
}
EOF</code></pre>
<p><strong>把 <code>ai.yourdomain.com</code> 换成你的真实域名。</strong></p>
<p>创建 Basic Auth 密码：</p>
<pre><code class="language-bash">apt install -y apache2-utils
htpasswd -c nginx/.htpasswd admin</code></pre>
<hr />
<h2>SSL 证书</h2>
<pre><code class="language-bash">apt install -y certbot
docker compose up -d nginx
docker compose down

certbot certonly --standalone -d ai.yourdomain.com --email your@email.com --agree-tos
cp /etc/letsencrypt/live/ai.yourdomain.com/fullchain.pem nginx/certs/
cp /etc/letsencrypt/live/ai.yourdomain.com/privkey.pem nginx/certs/</code></pre>
<p>证书续签 cron：</p>
<pre><code class="language-bash">(crontab -l 2&gt;/dev/null; echo "0 3 1 * * certbot renew --quiet &amp;&amp; cp /etc/letsencrypt/live/ai.yourdomain.com/fullchain.pem /opt/ai-stack/nginx/certs/ &amp;&amp; cp /etc/letsencrypt/live/ai.yourdomain.com/privkey.pem /opt/ai-stack/nginx/certs/ &amp;&amp; docker compose -f /opt/ai-stack/docker-compose.yml exec nginx nginx -s reload") | crontab -</code></pre>
<hr />
<h2>启动</h2>
<pre><code class="language-bash">cd /opt/ai-stack
docker compose up -d
docker compose ps
# 看到三个容器都在运行就对了</code></pre>
<p>拉模型：</p>
<pre><code class="language-bash">docker exec -it ollama ollama pull qwen2.5:7b</code></pre>
<p>打开浏览器访问 <code>https://ai.yourdomain.com</code>，输入密码后开始聊天。</p>
<hr />
<h2>常见问题</h2>
<p><strong>WebSocket 连不上</strong> — 确认 nginx.conf 里有 <code>proxy_http_version 1.1</code> 和 Upgrade/Connection headers。</p>
<p><strong>端口冲突</strong> — 改 docker-compose.yml 里 nginx 的端口映射，比如 <code>"8443:443"</code>。</p>
<p><strong>模型数据放其他盘</strong> — 改 volume 路径：<code>- /data/ollama:/root/.ollama</code>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://95bok.cn/docker-compose-ollama-open-webui-nginx/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Dify 本地部署教程：Docker 一键搭建 AI 应用开发平台，对接 Ollama 模型</title>
		<link>https://95bok.cn/dify-local-deployment-docker-ollama/</link>
					<comments>https://95bok.cn/dify-local-deployment-docker-ollama/#respond</comments>
		
		<dc:creator><![CDATA[云烟]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 05:53:45 +0000</pubDate>
				<category><![CDATA[Docker容器]]></category>
		<category><![CDATA[未分类]]></category>
		<category><![CDATA[本地AI]]></category>
		<category><![CDATA[Dify]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[部署]]></category>
		<guid isPermaLink="false">https://95bok.cn/dify-local-deployment-docker-ollama/</guid>

					<description><![CDATA[这篇讲 Dify 的本地部署。Dify 是个开源 AI 应用开发平台，可视化搭聊天机器人、工作流、Agent， ... <a title="Dify 本地部署教程：Docker 一键搭建 AI 应用开发平台，对接 Ollama 模型" class="read-more" href="https://95bok.cn/dify-local-deployment-docker-ollama/" aria-label="阅读 Dify 本地部署教程：Docker 一键搭建 AI 应用开发平台，对接 Ollama 模型">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p>这篇讲 Dify 的本地部署。Dify 是个开源 AI 应用开发平台，可视化搭聊天机器人、工作流、Agent，比纯写代码省事多了。</p>
<hr />
<h2>Dify 和 Open WebUI 的区别</h2>
<p>Open WebUI 就是个聊天界面，轻量简单。Dify 是完整平台——能编排工作流、管理知识库、发布 API、建 Agent。</p>
<p>只想聊天选 Open WebUI。要搭应用、搞知识库、做复杂流程选 Dify。</p>
<hr />
<h2>部署</h2>
<p>克隆官方仓库：</p>
<pre><code class="language-bash">cd /opt
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env</code></pre>
<p>.env 里改几个关键的：</p>
<pre><code class="language-bash">EXPOSE_NGINX_PORT=8080</code></pre>
<p>对接本地 Ollama：</p>
<pre><code class="language-bash">OLLAMA_API_BASE_URL=http://host.docker.internal:11434
# 或者 Docker 网关 IP：http://172.17.0.1:11434</code></pre>
<p>启动：</p>
<pre><code class="language-bash">docker compose up -d</code></pre>
<p>第一次拉很多镜像，等几分钟。看进度 <code>docker compose logs -f</code>。</p>
<p>访问 <code>http://你的IP:8080</code>，首次注册管理员账号。</p>
<hr />
<h2>对接 Ollama</h2>
<p>登录 Dify → 设置 → 模型供应商 → 选 Ollama → 填地址 → 验证 → 保存。</p>
<p>地址格式：</p>
<ul>
<li>同机：http://host.docker.internal:11434 或 http://172.17.0.1:11434</li>
<li>其他机器：http://192.168.x.x:11434</li>
</ul>
<p>Ollama 得监听 0.0.0.0 而不是 127.0.0.1，否则容器里连不上：</p>
<pre><code class="language-bash">ss -tlnp | grep 11434
# 看到 127.0.0.1 就得改
sudo systemctl edit ollama
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
sudo systemctl daemon-reload &amp;&amp; sudo systemctl restart ollama</code></pre>
<hr />
<h2>创建应用</h2>
<p>首页 → 创建应用 → 聊天助手 → 选模型 → 写系统提示词 → 发布。</p>
<p>知识库问答机器人：</p>
<ol>
<li>知识库 → 创建知识库</li>
<li>上传文档（PDF、TXT、Markdown、Word 都行）</li>
<li>分段方式选自动</li>
<li>索引，等处理完</li>
<li>创建聊天助手时开启上下文，选知识库</li>
</ol>
<hr />
<h2>资源占用</h2>
<p>Dify 全家桶（Dify + PostgreSQL + Redis + Weaviate + Nginx + Sandbox）大概 2~4G 内存。加上 Ollama 的 7B 模型，总共 7~9G。</p>
<p>16G 机器可以跑，8G 建议只跑 Ollama + Open WebUI，Dify 太重。</p>
<hr />
<h2>升级</h2>
<pre><code class="language-bash">cd /opt/dify/docker
git pull
docker compose pull
docker compose up -d</code></pre>
<p>Dify 更新比较频繁，隔几周看看有没有新版本。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://95bok.cn/dify-local-deployment-docker-ollama/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ollama + Open WebUI 完整部署指南：Docker vs 原生，CPU/GPU 都给你整明白</title>
		<link>https://95bok.cn/ollama-open-webui-docker-vs-native/</link>
					<comments>https://95bok.cn/ollama-open-webui-docker-vs-native/#respond</comments>
		
		<dc:creator><![CDATA[云烟]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 05:00:00 +0000</pubDate>
				<category><![CDATA[Docker容器]]></category>
		<category><![CDATA[本地AI]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Ollama]]></category>
		<category><![CDATA[Open WebUI]]></category>
		<category><![CDATA[部署]]></category>
		<guid isPermaLink="false">https://95bok.cn/ollama-open-webui-docker-vs-native/</guid>

					<description><![CDATA[这篇是我折腾了好几轮之后总结出来的。Ollama 跑本地模型，Open WebUI 做聊天界面，两个都有 Do ... <a title="Ollama + Open WebUI 完整部署指南：Docker vs 原生，CPU/GPU 都给你整明白" class="read-more" href="https://95bok.cn/ollama-open-webui-docker-vs-native/" aria-label="阅读 Ollama + Open WebUI 完整部署指南：Docker vs 原生，CPU/GPU 都给你整明白">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p>这篇是我折腾了好几轮之后总结出来的。Ollama 跑本地模型，Open WebUI 做聊天界面，两个都有 Docker 和原生两种装法。每种我都实际跑过，下面直接说结果。</p>
<p><strong>先说结论：</strong>Linux 服务器直接上 Docker，Windows 个人电脑走原生安装包。别纠结，这两个是最省事的路。</p>
<hr />
<h2>为什么我最后选了 Docker（服务器端）</h2>
<p>一开始我是原生装的 Ollama，一行命令的事儿，确实简单。但后来想加 Open WebUI，发现这玩意官方推荐也是 Docker。那还不如两个都扔 Docker 里，用 compose 一起管。</p>
<p>实际用下来 Docker 版的好处很明显：升级就是拉新镜像重建容器，数据存在 volume 里不丢。原生的话升级要重新跑安装脚本，虽然也不难，但总觉得不如一条命令干净。</p>
<p>GPU 方面 Docker 也没性能损失，装了 NVIDIA Container Toolkit 之后直通，跟原生一样快。</p>
<hr />
<h2>Docker 版部署</h2>
<h3>准备工作</h3>
<p>装 Docker：</p>
<pre><code class="language-bash">curl -fsSL https://get.docker.com | sh
systemctl enable --now docker</code></pre>
<p>有 Nvidia GPU 的话装 Container Toolkit：</p>
<pre><code class="language-bash">curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
apt update &amp;&amp; apt install -y nvidia-container-toolkit
nvidia-ctk runtime configure --runtime=docker
systemctl restart docker</code></pre>
<h3>compose 文件</h3>
<p>建个目录 <code>/opt/ollama-stack</code>，里面放 <code>docker-compose.yml</code>：</p>
<pre><code class="language-yaml">version: "3.8"

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ollama-data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    ports:
      - "3000:8080"
    volumes:
      - open-webui-data:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    depends_on:
      - ollama

volumes:
  ollama-data:
  open-webui-data:</code></pre>
<p>没 GPU 就把 <code>deploy</code> 那段整个删掉，其他不用改。</p>
<p>启动：</p>
<pre><code class="language-bash">cd /opt/ollama-stack
docker compose up -d</code></pre>
<p>等镜像拉完，浏览器打开 <code>http://你的IP:3000</code> 就能看到 Open WebUI 了。拉个模型试试：</p>
<pre><code class="language-bash">docker exec -it ollama ollama pull qwen2.5:7b</code></pre>
<hr />
<h2>原生版（适合 Windows 或不想装 Docker 的情况）</h2>
<p>Linux 一行命令搞定：</p>
<pre><code class="language-bash">curl -fsSL https://ollama.com/install.sh | sh</code></pre>
<p>装完自动注册了 systemd 服务，<code>systemctl status ollama</code> 看看在不在跑。默认监听 <code>127.0.0.1:11434</code>，局域网访问的话改一下环境变量：</p>
<pre><code class="language-bash">sudo systemctl edit ollama
# 加上：
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
sudo systemctl daemon-reload
sudo systemctl restart ollama</code></pre>
<p>Windows 更简单，去 <a href="https://ollama.com/download" target="_blank" rel="nofollow noopener">ollama.com/download</a> 下载安装包，装完任务栏右下角就有图标。</p>
<p>Open WebUI 原生化比较麻烦，官方也推荐 Docker。如果实在不想装 Docker，可以直接用 Ollama 自带的 API 调着玩，或者装个第三方的轻量前端。</p>
<hr />
<h2>CPU 还是 GPU？差距确实大</h2>
<p>同样跑 <code>qwen2.5:7b</code>：</p>
<p>RTX 3060（12G 显存）大概 15~20 token/s，聊起来基本没卡顿感。RTX 4090 能到 50~80 token/s，飞快。</p>
<p>纯 CPU 就不太好看了。i5-12400 大概 2~4 token/s，能聊，但等回复要有耐心。AMD 5800H 稍好一些，3~5 t/s。</p>
<p>如果你只有 CPU，建议先试 3B 以下的小模型。<code>qwen2.5:3b</code> 在 CPU 上能到 10~15 t/s，日常聊天够用了。7B 在 CPU 上勉强能聊，超过 13B 就别想了。</p>
<hr />
<h2>几点踩坑记录</h2>
<p><strong>Ollama 默认只监听 127.0.0.1</strong>。如果你部署在服务器上想让其他设备访问，别忘了改 OLLAMA_HOST。</p>
<p><strong>Docker 版里 Open WebUI 连 Ollama 用的是容器间通信</strong>，地址是 <code>http://ollama:11434</code>（容器名），不是 <code>127.0.0.1</code>。这个踩过坑。</p>
<p><strong>外网暴露要注意安全</strong>。Ollama 没认证，谁连上都能调。建议只绑内网 IP，或者用 Nginx 反代加 basic auth。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://95bok.cn/ollama-open-webui-docker-vs-native/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
