<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>夜翼玖</title><description>这是我的博客</description><link>https://blog.yorutubasa.top/</link><templateTheme>Firefly</templateTheme><templateThemeVersion>V2.7.0</templateThemeVersion><templateThemeUrl>https://github.com/YoruTubasa/blog</templateThemeUrl><lastBuildDate>2026年8月10日 19:04:11</lastBuildDate><item><title>OlivOS:强大的跨平台机器人框架</title><link>https://blog.yorutubasa.top/posts/olivos-guide/</link><guid isPermaLink="true">https://blog.yorutubasa.top/posts/olivos-guide/</guid><description>介绍 OlivOS(Witness Union)——一个强大的跨平台交互栈与机器人框架:用一套代码同时接入 QQ、Telegram、Discord、Kook、DoDo 等平台,让机器人无处不在。</description><pubDate>Sun, 09 Aug 2026 16:38:00 GMT</pubDate><content:encoded><![CDATA[<h1>OlivOS:强大的跨平台机器人框架</h1>
<blockquote>
<p>OlivOS / Witness Union,一个强大的跨平台交互栈与机器人框架。</p>
</blockquote>
<h2>一、OlivOS 是什么?</h2>
<p><strong>OlivOS</strong> 是一个以 <strong>Python</strong> 为核心的开源跨平台机器人框架。它最迷人的地方在于:<strong>同一套业务逻辑,可以同时跑在多个聊天平台上</strong>——无论是 QQ、Telegram、Discord,还是 Kook(开黑啦)、DoDo、Fanbook,只需写一次,处处可用。</p>
<p>在机器人生态日渐碎片化的今天,每个平台一套框架、一套代码的做法早已过时。OlivOS 的定位,就是做一个<strong>统一的"交互栈"</strong>——把平台的差异封装在底层,把创造力留给开发者。</p>
<h2>二、核心特性</h2>
<table>
<thead>
<tr>
<th>特性</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td><strong>跨平台</strong></td>
<td>QQ / Telegram / Discord / Kook / DoDo / Fanbook / HackChat 等</td>
</tr>
<tr>
<td><strong>OneBot 支持</strong></td>
<td>兼容 OneBot 标准,轻松对接 QQ 生态</td>
</tr>
<tr>
<td><strong>Python 开发</strong></td>
<td>语法简洁、生态丰富,上手门槛低</td>
</tr>
<tr>
<td><strong>插件机制</strong></td>
<td>功能即插件,热插拔、易扩展</td>
</tr>
<tr>
<td><strong>消息互通</strong></td>
<td>可跨平台转发消息,构建消息桥</td>
</tr>
<tr>
<td><strong>开源活跃</strong></td>
<td>社区持续维护,更新频繁</td>
</tr>
</tbody></table>
<h2>三、架构理念:交互栈</h2>
<p>OlivOS 把机器人能力拆成清晰的层次:</p>
<pre><code>┌─────────────────────────────┐
│     平台适配层(QQ/TG/Discord...)   │
├─────────────────────────────┤
│     核心交互逻辑(事件/消息)      │
├─────────────────────────────┤
│     插件层(AI/群管/订阅...)     │
└─────────────────────────────┘
</code></pre>
<p>上层插件无需关心"消息来自哪个平台",下层适配层屏蔽了各平台的 API 差异。这意味着你写一个"每日天气"插件,就能同时在 QQ 群和 Telegram 群工作。</p>
<h2>四、部署方法(多种可选)</h2>
<h3>方式一:Windows 发布版本(推荐,最省心)</h3>
<ol>
<li>前往 OlivOS 的 <strong>GitHub Releases</strong> 页面,下载最新的 <strong>Windows 发布版</strong>(exe 安装包或压缩包);</li>
<li>解压/安装后<strong>双击运行</strong>,程序会自动完成 Python 运行环境与依赖的初始化;</li>
<li>打开自带的图形界面,按引导添加各平台接入(如 OneBot 协议对接 QQ);</li>
<li>保存配置后即可启动机器人。</li>
</ol>
<blockquote>
<p>推荐理由:发布版已经内置了运行环境,无需手动安装 Python 和依赖,开箱即用,对新手最友好。</p>
</blockquote>
<h3>方式二:源码运行(Python 环境)</h3>
<pre><code class="language-bash"># 1. 克隆项目
git clone https://github.com/OlivOS-Team/OlivOS.git
cd OlivOS

# 2. 安装依赖(建议使用虚拟环境)
python -m venv venv
venv\Scripts\activate        # Windows
# source venv/bin/activate    # Linux / macOS

pip install -r requirements.txt

# 3. 启动
python main.py
</code></pre>
<h3>方式三:Docker 部署(适合服务器)</h3>
<pre><code class="language-bash">docker run -d --name olivos \
  -v /opt/olivos:/app/data \
  --restart always \
  olivos/olivos:latest
</code></pre>
<p>数据目录挂载到宿主机,方便备份与迁移。</p>
<blockquote>
<p>提示:配合 NapCat / LLBot 等 OneBot 协议实现,可以快速接入 QQ;Telegram / Discord 则直接配置 Bot Token 即可。</p>
</blockquote>
<h2>五、常见玩法</h2>
<ul>
<li><strong>跨平台消息桥</strong>:把 QQ 群和 Telegram 群连起来,两边同步聊天</li>
<li><strong>AI 助手</strong>:对接大模型,多平台统一提供 AI 对话</li>
<li><strong>资讯订阅</strong>:RSS / 番剧 / 新闻推送,一处配置多端同步</li>
<li><strong>群管工具</strong>:入群欢迎、关键词回复、定时任务</li>
<li><strong>游戏辅助</strong>:抽卡统计、骰子娱乐、活动提醒</li>
</ul>
<h2>六、小结</h2>
<p>OlivOS 用"一套代码,多端运行"的哲学,解决了机器人开发中最大的痛点——<strong>平台碎片化</strong>。无论你是个人开发者还是团队,如果你想打造一个跨平台机器人,并希望代码能一次编写、处处运行,OlivOS 会是一个值得信赖的选择。</p>
<p><strong>机器人的意义,不止于一个平台。</strong></p>
]]></content:encoded></item><item><title>LLBot:新一代 QQ 机器人框架</title><link>https://blog.yorutubasa.top/posts/llbot-guide/</link><guid isPermaLink="true">https://blog.yorutubasa.top/posts/llbot-guide/</guid><description>介绍 LLBot(幸运莉莉娅)——新一代 QQ 机器人框架:多平台部署、OneBot 11 协议、现代化 WebUI 管理界面,以及与 AstrBot 的联动方案。</description><pubDate>Sun, 09 Aug 2026 16:33:00 GMT</pubDate><content:encoded><![CDATA[<h1>LLBot:新一代 QQ 机器人框架</h1>
<blockquote>
<p>LLBot,强大的 QQ 机器人框架,部署机器人更简单、更高效。</p>
</blockquote>
<h2>一、LLBot 是什么?</h2>
<p><strong>LLBot(幸运莉莉娅 / Lucky Lillia Bot)</strong> 是一款开源的 QQ 机器人框架。与传统的协议实现不同,LLBot 在提供稳定 QQ 接入能力的同时,更注重<strong>部署体验</strong>与<strong>管理便利</strong>——开箱即用、可视化配置,让搭建 QQ 机器人变得前所未有的简单。</p>
<p>如果说 NapCat 是"扎实的协议内核",那么 LLBot 就是"全家桶式的开箱体验"。</p>
<h2>二、核心特性</h2>
<table>
<thead>
<tr>
<th>特性</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td><strong>多平台支持</strong></td>
<td>Windows / Linux 均可部署,桌面版与服务器都能跑</td>
</tr>
<tr>
<td><strong>多种安装方式</strong></td>
<td>Desktop 版、CLI 版、Docker 镜像,按需选择</td>
</tr>
<tr>
<td><strong>多协议兼容</strong></td>
<td>完整支持 <strong>OneBot 11</strong>、Milky、Satori 协议</td>
</tr>
<tr>
<td><strong>现代化 WebUI</strong></td>
<td>漂亮的网页管理界面,可视化配置,无需手改文件</td>
</tr>
<tr>
<td><strong>内置 WebQQ</strong></td>
<td>内置 QQ 接入能力,一键安装、对接各种框架</td>
</tr>
<tr>
<td><strong>API 完善</strong></td>
<td>消息、群管、文件、表情等接口齐全</td>
</tr>
<tr>
<td><strong>开源免费</strong></td>
<td>完全开源,社区活跃</td>
</tr>
</tbody></table>
<h2>三、LLBot 与 AstrBot 联动</h2>
<p>和你正在看的这个博客一样,由 <strong>AstrBot</strong> 驱动。接入 QQ 的常见方案之一就是搭配 LLBot:</p>
<pre><code>LLBot(QQ 协议层)
    ↓ OneBot 11(WebSocket)
AstrBot(机器人框架层)
    ↓ 插件 / 大模型
智能对话、群管、订阅推送……
</code></pre>
<h2>四、部署方法(多种可选)</h2>
<h3>方式一:Desktop 桌面版(推荐 Windows 用户)</h3>
<ol>
<li>从 LLBot 官网(或 GitHub Releases)下载 <strong>Desktop 版安装包</strong>;</li>
<li>双击安装,启动后自动打开现代化 <strong>WebUI 管理界面</strong>;</li>
<li>在 WebUI 中扫码登录 QQ,配置 OneBot 11 服务即可使用。</li>
</ol>
<blockquote>
<p>所有配置都在可视化界面完成,完全无需手动编辑配置文件,适合新手。</p>
</blockquote>
<h3>方式二:CLI 命令行版(推荐服务器)</h3>
<pre><code class="language-bash"># 下载对应平台(Windows/Linux)的 CLI 版本
wget https://example.com/llbot-cli-linux-x64.tar.gz
tar -xzf llbot-cli-linux-x64.tar.gz
cd llbot-cli

# 启动服务
./llbot start
</code></pre>
<p>启动后访问 <code>http://localhost:3001</code> 打开 WebUI 完成扫码登录与协议配置。</p>
<h3>方式三:Docker 部署(推荐容器化环境)</h3>
<pre><code class="language-bash"># 拉取并启动 LLBot 容器
docker run -d --name llbot \
  -p 3001:3001 \
  -v /opt/llbot/data:/app/data \
  --restart always \
  llbot/llbot:latest
</code></pre>
<p>数据持久化在宿主机,容器更新/迁移都不丢配置。</p>
<blockquote>
<p>提示:正式使用建议开启<strong>反向 WebSocket</strong>,由框架主动连接,更安全稳定。</p>
</blockquote>
<h2>五、常见玩法</h2>
<ul>
<li><strong>AI 聊天</strong>:对接大模型,让机器人陪你聊天</li>
<li><strong>群管理</strong>:入群欢迎、关键词回复、定时提醒、禁言管理</li>
<li><strong>资讯订阅</strong>:番剧更新、新闻推送、天气查询</li>
<li><strong>娱乐功能</strong>:点歌、骰子、抽签、签到</li>
<li><strong>个人助理</strong>:待办、翻译、百科、OCR</li>
</ul>
<h2>六、小结</h2>
<p>LLBot 凭借<strong>多平台、多协议、可视化 WebUI</strong> 的特点,成为搭建 QQ 机器人的优秀选择。无论你是想快速跑通一个机器人,还是构建复杂的自动化服务,LLBot 都能给你顺滑的体验。</p>
<p><strong>有了 LLBot,把想法变成机器人,真的只需要一杯咖啡的时间。</strong></p>
]]></content:encoded></item><item><title>NapCatQQ:新一代 QQ 机器人协议实现</title><link>https://blog.yorutubasa.top/posts/napcat-guide/</link><guid isPermaLink="true">https://blog.yorutubasa.top/posts/napcat-guide/</guid><description>介绍 NapCatQQ——基于新版 QQ 的机器人协议实现:OneBot 11 兼容、WebSocket 通信、与 AstrBot 等框架联动,以及多种部署实战。</description><pubDate>Sun, 09 Aug 2026 14:33:00 GMT</pubDate><content:encoded><![CDATA[<h1>NapCatQQ:新一代 QQ 机器人协议实现</h1>
<blockquote>
<p>想在 QQ 上跑一个属于自己的机器人?从 NapCatQQ 开始,或许是最省心的一条路。</p>
</blockquote>
<h2>一、什么是 NapCatQQ?</h2>
<p><strong>NapCatQQ</strong> 是一个基于 <strong>NTQQ(新版 QQ 客户端)</strong> 的机器人协议实现。它通过封装新版 QQ 的底层能力,对外提供 <strong>OneBot 11</strong> 标准接口,让开发者可以用统一的协议接入 QQ,而无需关心 QQ 客户端内部复杂的实现细节。</p>
<p>简单来说:<strong>NapCat 把 QQ 变成了一个可以被程序控制的"机器人内核"</strong>,你只需要按照 OneBot 协议收发消息,就能构建出功能丰富的 QQ 机器人。</p>
<h2>二、为什么选择 NapCat?</h2>
<table>
<thead>
<tr>
<th>优势</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td><strong>OneBot 11 标准</strong></td>
<td>协议成熟,生态丰富,几乎所有机器人框架都兼容</td>
</tr>
<tr>
<td><strong>基于 NTQQ</strong></td>
<td>跟随官方新版 QQ,登录稳定</td>
</tr>
<tr>
<td><strong>部署灵活</strong></td>
<td>Windows / Linux / Docker 多种方式任选</td>
</tr>
<tr>
<td><strong>无头模式</strong></td>
<td>无需图形界面,适合服务器运行</td>
</tr>
<tr>
<td><strong>社区活跃</strong></td>
<td>相比已停止维护的 go-cqhttp,是目前的推荐方案</td>
</tr>
</tbody></table>
<h2>三、NapCat 与 AstrBot 联动</h2>
<p>你正在看的这个博客,就是由 <strong>AstrBot</strong> 驱动的。AstrBot 接入 QQ 的常见方式之一,就是搭配 NapCat:</p>
<pre><code>NapCatQQ(QQ 协议层)
    ↓ OneBot 11(WebSocket)
AstrBot(机器人框架层)
    ↓ 插件 / 大模型
智能对话、群管、订阅推送……
</code></pre>
<h2>四、部署方法(多种可选)</h2>
<h3>方式一:Windows 客户端版(推荐个人使用)</h3>
<ol>
<li>到 NapCat 官方 <strong>GitHub Releases</strong> 或官网下载对应 Windows 版本安装包;</li>
<li>双击安装,按提示完成初始化;</li>
<li>启动后登录你的 QQ 账号;</li>
<li>在设置中开启 OneBot 11 服务(正向 / 反向 WebSocket),即可被框架对接。</li>
</ol>
<blockquote>
<p>适合 Windows 桌面环境,所见即所得,配置都在图形界面完成。</p>
</blockquote>
<h3>方式二:Docker 部署(推荐服务器)</h3>
<pre><code class="language-bash"># 创建数据目录
mkdir -p /opt/napcat/config

# 启动容器
docker run -d --name napcat \
  -p 3001:3001 -p 6099:6099 \
  -v /opt/napcat/config:/app/napcat/config \
  --restart always \
  mlikiowa/napcat-docker
</code></pre>
<p>启动后查看容器日志中的<strong>二维码</strong>,用手机 QQ 扫码登录即可。登录成功后 NapCat 会通过 WebSocket/HTTP 对外提供 OneBot 接口。</p>
<h3>方式三:Linux 一键脚本安装</h3>
<pre><code class="language-bash"># 官方一键安装脚本(支持主流发行版)
curl -o install.sh https://naptheme.cn/install.sh
bash install.sh
</code></pre>
<p>安装完成后使用 <code>napcat</code> 命令启动,可配合 <code>systemd</code> 设为开机自启。</p>
<h3>方式四:无头模式(Headless)</h3>
<p>服务器无桌面环境时,可使用 NapCat 的无头模式:</p>
<pre><code class="language-bash"># 首次运行生成二维码(在日志中查看)
napcat -q &lt;你的QQ号&gt; --headless

# 扫码登录后即常驻后台
</code></pre>
<blockquote>
<p>提示:正式使用建议配置<strong>反向 WebSocket</strong>,由框架(如 AstrBot)主动连接,安全性更好。</p>
</blockquote>
<h2>五、常见玩法</h2>
<ul>
<li><strong>AI 聊天</strong>:对接大模型 API,让机器人陪你聊天</li>
<li><strong>群管理</strong>:入群欢迎、关键词回复、定时提醒</li>
<li><strong>资讯订阅</strong>:番剧更新、新闻推送、天气查询</li>
<li><strong>游戏辅助</strong>:抽卡统计、活动提醒、骰子娱乐</li>
<li><strong>个人助理</strong>:待办提醒、翻译、百科查询</li>
</ul>
<h2>六、小结</h2>
<p>NapCatQQ 兼具稳定性与易用性,是目前搭建 QQ 机器人的<strong>首选方案</strong>之一。配合 AstrBot 等框架,即使是编程新手,也能在半小时内拥有一个属于自己的 QQ 机器人。</p>
<p>如果你也想折腾,不妨从 NapCat 开始——<strong>把想法变成机器人,其实没那么难。</strong></p>
]]></content:encoded></item><item><title>AstrBot:开源多功能机器人框架</title><link>https://blog.yorutubasa.top/posts/astrbot-guide/</link><guid isPermaLink="true">https://blog.yorutubasa.top/posts/astrbot-guide/</guid><description>介绍 AstrBot 这款开源多功能机器人框架:支持多平台、插件生态、AI 大模型接入,以及如何部署和使用。</description><pubDate>Sun, 09 Aug 2026 06:25:00 GMT</pubDate><content:encoded><![CDATA[<h1>AstrBot:开源多功能机器人框架</h1>
<blockquote>
<p>AstrBot 是一款开源、易用、功能强大的多功能机器人框架。你正在阅读的这个博客,就是由 AstrBot 驱动、并与 AI 深度结合的成果之一。</p>
</blockquote>
<h2>一、AstrBot 是什么?</h2>
<p><strong>AstrBot</strong> 是一个基于 Python 的开源机器人框架,支持接入<strong>多种聊天平台</strong>(如 QQ、Telegram、微信等),并内置了对 <strong>AI 大模型(LLM)</strong> 的支持,可以轻松打造智能聊天机器人、群管助手、个人助理等。</p>
<p>它的核心设计理念是:<strong>简单、可扩展、开箱即用</strong>。</p>
<h2>二、核心特性</h2>
<table>
<thead>
<tr>
<th>特性</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td><strong>多平台支持</strong></td>
<td>一套代码,接入 QQ / Telegram 等多个平台</td>
</tr>
<tr>
<td><strong>AI 大模型接入</strong></td>
<td>原生支持主流 LLM API(OpenAI、通义、DeepSeek 等)</td>
</tr>
<tr>
<td><strong>插件生态</strong></td>
<td>丰富的插件市场,一键安装各类功能插件</td>
</tr>
<tr>
<td><strong>Web 管理面板</strong></td>
<td>图形化配置,无需写代码也能玩转</td>
</tr>
<tr>
<td><strong>知识库/RAG</strong></td>
<td>支持向量检索,让机器人"记住"你的资料</td>
</tr>
<tr>
<td><strong>定时任务</strong></td>
<td>内置 cron 定时任务系统</td>
</tr>
</tbody></table>
<h2>三、架构概览</h2>
<pre><code>聊天平台(QQ/Telegram/...)
        │
        ▼
┌─────────────┐
│  AstrBot 核心 │ ← 消息分发、会话管理、插件调度
└─────────────┘
        │
   ┌────┴────┐
   ▼         ▼
插件系统    LLM 适配层
(功能扩展)  (AI 对话)
</code></pre>
<h2>四、快速部署</h2>
<h3>Docker 部署(推荐)</h3>
<pre><code class="language-bash"># 拉取镜像
docker pull soulter/astrbot

# 运行(挂载配置目录)
docker run -d \
  --name astrbot \
  -p 6185:6185 \
  -v ./data:/AstrBot/data \
  --restart always \
  soulter/astrbot
</code></pre>
<h3>源码部署</h3>
<pre><code class="language-bash">git clone https://github.com/Soulter/AstrBot
cd AstrBot
pip install -r requirements.txt
python main.py
</code></pre>
<p>启动后访问 <code>http://localhost:6185</code> 打开管理面板,按向导配置平台和 AI 模型即可。</p>
<h2>五、常用玩法</h2>
<h3>1. 接入 AI 对话</h3>
<p>在管理面板配置 LLM(如 DeepSeek、通义千问、OpenAI 兼容接口),机器人就能:</p>
<ul>
<li>智能对话、回答问题</li>
<li>联网搜索资讯</li>
<li>处理图片/语音消息</li>
</ul>
<h3>2. 插件扩展</h3>
<p>AstrBot 有丰富的插件市场,常见插件包括:</p>
<ul>
<li>今日新闻 / 天气查询</li>
<li>群管功能(欢迎、禁言、定时清理)</li>
<li>RSS 订阅推送</li>
<li>博客/网站管理(比如我用的 Firefly 博客插件!)</li>
</ul>
<h3>3. 定时任务</h3>
<p>内置 cron 调度,可以:</p>
<ul>
<li>每天早上推送天气</li>
<li>定时发送资讯日报</li>
<li>定时执行备份脚本</li>
</ul>
<h2>六、与 AI 深度结合</h2>
<p>AstrBot 的亮点在于**"机器人 + 大模型 + 工具调用"**的融合:</p>
<ul>
<li><strong>角色扮演</strong>:设定人设,机器人以指定身份对话</li>
<li><strong>长时记忆</strong>:通过记忆插件,记住用户的偏好和过往对话</li>
<li><strong>知识库问答</strong>:上传文档构建 RAG 知识库,精准回答领域问题</li>
<li><strong>Agent 能力</strong>:调用外部工具(搜索、绘图、执行脚本)</li>
</ul>
<h2>七、写在最后</h2>
<p>AstrBot 降低了"造一个 AI 机器人"的门槛——不需要懂复杂的框架,配置好平台和模型,就能拥有一个 7×24 小时的智能助手。</p>
<p>如果你对机器人开发、AI 应用感兴趣,不妨从 AstrBot 开始试试。开源地址:<a href="https://github.com/Soulter/AstrBot">github.com/Soulter/AstrBot</a></p>
<p><em>本文基于我自己的使用体验撰写,欢迎交流!</em></p>
]]></content:encoded></item><item><title>Docker 入门与实践:从零理解容器化部署</title><link>https://blog.yorutubasa.top/posts/docker-guide/</link><guid isPermaLink="true">https://blog.yorutubasa.top/posts/docker-guide/</guid><description>一篇面向新手的 Docker 入门教程,涵盖核心概念、常用命令、数据卷、网络与 Docker Compose,附实战示例与避坑指南。</description><pubDate>Sun, 09 Aug 2026 06:20:00 GMT</pubDate><content:encoded><![CDATA[<h1>Docker 入门与实践:从零理解容器化部署</h1>
<blockquote>
<p>容器化已经成为现代运维和开发不可或缺的技能。本文从零开始,带你理解 Docker 的核心概念,掌握常用操作,并完成几个实战示例。</p>
</blockquote>
<h2>一、Docker 是什么?</h2>
<p><strong>Docker</strong> 是一个开源的容器化平台,它可以把应用程序及其依赖打包成一个<strong>可移植的镜像</strong>,在任何安装了 Docker 的机器上以<strong>容器</strong>的形式运行。</p>
<p>打个比方:</p>
<ul>
<li><strong>镜像 (Image)</strong> 就像一张"安装光盘"或"模板",包含了应用运行所需的一切(代码、运行时、系统库、配置)。</li>
<li><strong>容器 (Container)</strong> 就是这张光盘运行起来的"实例",多个实例之间相互隔离。</li>
<li><strong>仓库 (Registry)</strong> 是存放镜像的"镜像商店",最著名的是 <a href="https://hub.docker.com/">Docker Hub</a>。</li>
</ul>
<h3>为什么用 Docker?</h3>
<ul>
<li><strong>环境一致</strong>:"在我电脑上能跑"的问题从此消失,开发、测试、生产环境完全一致。</li>
<li><strong>轻量高效</strong>:容器共享宿主内核,启动只需毫秒级,资源占用远小于虚拟机。</li>
<li><strong>快速部署</strong>:一条命令即可拉起服务,配合 Compose 可以一键启动整套应用栈。</li>
<li><strong>隔离安全</strong>:容器之间相互隔离,互不干扰。</li>
</ul>
<h2>二、安装 Docker</h2>
<p>以 Ubuntu/Debian 为例,官方提供了一键安装脚本:</p>
<pre><code class="language-bash">curl -fsSL https://get.docker.com | sh
</code></pre>
<p>安装完成后启动守护进程并验证:</p>
<pre><code class="language-bash">sudo systemctl start docker
sudo systemctl enable docker
docker version        # 查看版本
docker run hello-world  # 测试运行
</code></pre>
<blockquote>
<p>⚠️ 注意:如果在<strong>无特权容器/虚拟机</strong>中运行 Docker(Docker-in-Docker),可能会遇到 <code>unshare: operation not permitted</code> 或 <code>Failed to create bridge docker0</code> 等权限错误,这是因为缺少 <code>CAP_SYS_ADMIN</code> 能力,通常无法绕开,只能改用原生安装或其他方案。</p>
</blockquote>
<h2>三、镜像与容器的常用命令</h2>
<h3>镜像操作</h3>
<pre><code class="language-bash">docker pull nginx          # 拉取镜像
docker images              # 查看本地镜像
docker rmi nginx           # 删除镜像
docker search mysql        # 搜索镜像
</code></pre>
<h3>容器操作</h3>
<pre><code class="language-bash">docker run -d --name web -p 8080:80 nginx   # 后台运行,映射端口
docker ps                                   # 查看运行中的容器
docker ps -a                                # 查看所有容器
docker logs -f web                          # 查看日志
docker exec -it web bash                    # 进入容器
docker stop web &amp;&amp; docker rm web            # 停止并删除容器
</code></pre>
<p>常用参数说明:</p>
<table>
<thead>
<tr>
<th>参数</th>
<th>含义</th>
</tr>
</thead>
<tbody><tr>
<td><code>-d</code></td>
<td>后台运行</td>
</tr>
<tr>
<td><code>-p 8080:80</code></td>
<td>端口映射:宿主机8080 → 容器80</td>
</tr>
<tr>
<td><code>-v /data:/var/lib/data</code></td>
<td>目录挂载</td>
</tr>
<tr>
<td><code>--name</code></td>
<td>容器命名</td>
</tr>
<tr>
<td><code>--restart always</code></td>
<td>开机自启/异常自动重启</td>
</tr>
<tr>
<td><code>--network</code></td>
<td>指定网络</td>
</tr>
</tbody></table>
<h2>四、数据卷:数据持久化的关键</h2>
<p>容器删除后,内部数据会随之消失。要持久化数据,必须使用<strong>数据卷</strong>或<strong>目录挂载</strong>:</p>
<pre><code class="language-bash"># 命名卷
docker volume create mydata
docker run -d -v mydata:/app/data mysql

# 目录挂载(推荐,方便备份)
docker run -d -v /opt/mysql:/var/lib/mysql mysql
</code></pre>
<blockquote>
<p>💡 部署数据库(MySQL/PostgreSQL)时,<strong>一定要挂载数据目录</strong>,否则容器重建 = 数据丢失。</p>
</blockquote>
<h2>五、网络:容器间如何通信</h2>
<p>Docker 默认提供三种网络模式:</p>
<ul>
<li><strong>bridge(默认)</strong>:容器通过虚拟网桥互联,可指定 <code>--network</code> 加入同一网络,通过<strong>容器名</strong>互相访问。</li>
<li><strong>host</strong>:容器直接使用宿主机网络,性能最好,但端口直接暴露。</li>
<li><strong>none</strong>:无网络。</li>
</ul>
<pre><code class="language-bash">docker network create mynet          # 创建自定义网络
docker run -d --network mynet --name app1 myapp
docker run -d --network mynet --name app2 myapp
# 此时 app1 容器内可以通过 http://app2:8080 访问 app2
</code></pre>
<blockquote>
<p>💡 把 Nginx、应用、数据库放进同一个自定义网络,用容器名互相调用,是常见的生产实践。</p>
</blockquote>
<h2>六、Docker Compose:一键编排多容器</h2>
<p>当应用由多个服务组成(如 Nginx + 后端 + 数据库)时,用 <code>docker-compose.yml</code> 统一编排:</p>
<pre><code class="language-yaml">version: "3"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    depends_on:
      - db
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: secret
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:
</code></pre>
<pre><code class="language-bash">docker compose up -d      # 启动全部服务
docker compose down       # 停止并移除
docker compose logs -f    # 查看日志
docker compose ps         # 查看状态
</code></pre>
<h2>七、实战:用 Docker 部署 Nginx + 静态网站</h2>
<pre><code class="language-bash"># 1. 拉取镜像
docker pull nginx

# 2. 准备站点目录
mkdir -p /opt/www &amp;&amp; echo '&lt;h1&gt;Hello Docker!&lt;/h1&gt;' &gt; /opt/www/index.html

# 3. 运行容器
docker run -d \
  --name my-site \
  -p 8080:80 \
  -v /opt/www:/usr/share/nginx/html:ro \
  --restart always \
  nginx

# 4. 验证
curl http://localhost:8080
</code></pre>
<h2>八、避坑指南</h2>
<ol>
<li><strong>容器时区</strong>:默认是 UTC,应用里时间不对可以在启动时加 <code>-e TZ=Asia/Shanghai</code> 或挂载 <code>/etc/localtime</code>。</li>
<li><strong>资源限制</strong>:用 <code>-m 512m --cpus 1</code> 限制内存和 CPU,防止容器吃光宿主机资源。</li>
<li><strong>镜像体积</strong>:尽量使用 <code>alpine</code> 等精简镜像,减小镜像体积。</li>
<li><strong>不要进容器改配置</strong>:容器是"一次性"的,配置修改应通过挂载或重新构建镜像,否则容器重建后修改就丢了。</li>
<li><strong>安全</strong>:容器内的 root 权限不等于宿主机 root,但错误挂载(<code>/:/host</code>)会很危险,慎用。</li>
</ol>
<h2>九、结语</h2>
<p>Docker 的核心思想是**"构建一次,到处运行"**。掌握它之后,部署服务从"装环境"变成了"拉镜像跑起来",效率提升非常明显。</p>
<p>如果你想进一步深入,可以继续学习:</p>
<ul>
<li>编写 Dockerfile 构建自己的镜像</li>
<li>Docker 镜像分层与缓存机制</li>
<li>与 CI/CD 结合实现自动化部署</li>
<li>容器编排:Kubernetes</li>
</ul>
<p>希望这篇文章对你有帮助,欢迎在评论区交流讨论!</p>
]]></content:encoded></item></channel></rss>