<?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; mylogs.cn</title>
	<atom:link href="https://mylogs.cn/tag/docker/feed/" rel="self" type="application/rss+xml" />
	<link>https://mylogs.cn</link>
	<description>发现、记录、分享</description>
	<lastBuildDate>Sun, 16 Aug 2026 12:47:03 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>自建文件管理器九月停更，换它更顺手</title>
		<link>https://mylogs.cn/%e8%87%aa%e5%bb%ba%e6%96%87%e4%bb%b6%e7%ae%a1%e7%90%86%e5%99%a8%e4%b9%9d%e6%9c%88%e5%81%9c%e6%9b%b4%ef%bc%8c%e6%8d%a2%e5%ae%83%e6%9b%b4%e9%a1%ba%e6%89%8b/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Sun, 16 Aug 2026 12:47:03 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[File Browser]]></category>
		<category><![CDATA[Filestash]]></category>
		<category><![CDATA[NAS]]></category>
		<category><![CDATA[文件管理]]></category>
		<category><![CDATA[自建服务]]></category>
		<guid isPermaLink="false">https://mylogs.cn/%e8%87%aa%e5%bb%ba%e6%96%87%e4%bb%b6%e7%ae%a1%e7%90%86%e5%99%a8%e4%b9%9d%e6%9c%88%e5%81%9c%e6%9b%b4%ef%bc%8c%e6%8d%a2%e5%ae%83%e6%9b%b4%e9%a1%ba%e6%89%8b/</guid>

					<description><![CDATA[家里放着一台小服务器或 NAS 的人，多半装过 File Browser——浏览器里打开就能翻文件、上传下载， [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">家里放着一台小服务器或 NAS 的人，多半装过 File Browser——浏览器里打开就能翻文件、上传下载，轻量得几乎不占资源。但这个项目已确定在 2026 年 9 月归档，也就是不再有新版本和安全更新。对自建服务来说，长期停更的组件本身就是隐患。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89e45d1f80d&quot;}" data-wp-interactive="core/image" data-wp-key="6a89e45d1f80d" class="wp-block-image size-large aligncenter wp-lightbox-container"><img fetchpriority="high" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/d624036e831c2078c874f08367d5aa16_header.webp" alt="自建文件管理器九月停更，换它更顺手" class="wp-image-5086" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/d624036e831c2078c874f08367d5aa16_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/d624036e831c2078c874f08367d5aa16_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/d624036e831c2078c874f08367d5aa16_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/d624036e831c2078c874f08367d5aa16_header-768x432.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：XDA Developers</figcaption></figure>





<p class="wp-block-paragraph">XDA Developers 撰稿人 Yash Patel 在自己的服务器上跑了 File Browser 好几年，一直没有换掉的理由。得知归档消息后，他没等真出问题才动手，而是提前挑替代品，最后选定了 Filestash。他给出的评价是：日常够用，速度比原来还快。</p>



<h2 class="wp-block-heading">一、Filestash 适合什么样的需求</h2>



<ol class="wp-block-list"><li>它是网页版文件管理器，用浏览器就能管理服务器上的文件</li><li>能对接多种存储，按官方说明包括 FTP、SFTP、WebDAV、S3、Git 以及各类云盘，不局限于服务器本地目录</li><li>它不是网盘全家桶，没有日历、联系人、在线文档协作那一整套</li><li>如果诉求只是「打开浏览器找文件、上传、下载、挪动位置」，这类精简工具反而更省心</li></ol>



<h2 class="wp-block-heading">二、按官方步骤用 Docker 部署</h2>



<ol class="wp-block-list"><li>准备一台 Linux 服务器，装好 docker、docker-compose 和 curl。官方给的硬件门槛很低：只要不做密集视频转码、不同时服务上千用户，128MB 内存加 1 核就够</li><li>新建目录并拉取官方编排文件：先执行 <code>mkdir filestash && cd filestash</code>，再执行 <code>curl -O https://downloads.filestash.app/latest/docker-compose.yml</code></li><li>启动服务：<code>docker-compose up -d</code></li><li>浏览器访问 <code>http://服务器地址:8334</code>，首次进入的第一件事是设置管理员密码</li><li>进管理后台勾选需要的存储后端，例如只保留 FTP 和 S3，保存后即可开始使用</li></ol>



<p class="wp-block-paragraph">部署过程中不需要搬动原有文件，把 Filestash 指向已有目录即可。该撰稿人也是这么做的：存储位置一动没动，接上要访问的文件夹就用起来了。</p>



<h2 class="wp-block-heading">三、日常真正用得上的几处</h2>



<ol class="wp-block-list"><li>界面清爽不拥挤，文件操作按钮都在预期的位置，文件夹层级容易跟</li><li>支持文件预览，图片等受支持的格式可以直接看，不必先下载一遍再确认是不是要找的那个</li><li>附带文件分享、搜索、书签、用户账号和访问控制</li><li>内置工作流自动化引擎，可以给文件相关任务配简单流程，比如批量移动、处理，或在某个事件发生时触发动作</li><li>支持插件机制，缺什么功能装插件补，不用把整套配置改复杂</li></ol>



<h2 class="wp-block-heading">注意事项</h2>



<p class="wp-block-paragraph">Filestash 的实际速度取决于它连接的存储，底层服务器或链路本身慢、不稳定，它救不回来。该撰稿人还遇到过缩略图突然不显示的情况，原因没查清，服务器重启几次后自行恢复了。想加在线文档编辑之类的进阶能力，需要额外配置。</p>



<p class="wp-block-paragraph">如果要放到公网使用，官方建议前面加一层反向代理负责 SSL 终止。后续升级也很简单：重新拉一次 docker-compose.yml，再依次执行 <code>docker-compose pull</code> 和 <code>docker-compose up -d</code>。</p>



<p class="wp-block-paragraph">来源：XDA Developers</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Win11 免 Docker 跑 Linux 容器，实测踩了三个坑</title>
		<link>https://mylogs.cn/win11-%e5%85%8d-docker-%e8%b7%91-linux-%e5%ae%b9%e5%99%a8%ef%bc%8c%e5%ae%9e%e6%b5%8b%e8%b8%a9%e4%ba%86%e4%b8%89%e4%b8%aa%e5%9d%91/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Sat, 15 Aug 2026 12:01:32 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[WSL]]></category>
		<category><![CDATA[容器]]></category>
		<category><![CDATA[开发环境]]></category>
		<guid isPermaLink="false">https://mylogs.cn/win11-%e5%85%8d-docker-%e8%b7%91-linux-%e5%ae%b9%e5%99%a8%ef%bc%8c%e5%ae%9e%e6%b5%8b%e8%b8%a9%e4%ba%86%e4%b8%89%e4%b8%aa%e5%9d%91/</guid>

					<description><![CDATA[在 Windows 上跑容器，多数人绕不开 Docker Desktop：常驻托盘、崩溃之后重启要等好几秒，还 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">在 Windows 上跑容器，多数人绕不开 Docker Desktop：常驻托盘、崩溃之后重启要等好几秒，还得点一次权限确认弹窗。微软在最新的 WSL 预览版里塞进了 WSL Containers（命令行工具名 wslc，直接用 WSL 跑 OCI 容器，不再依赖 Docker 或 Podman），XDA 撰稿人拿它和 Docker Desktop 做了对照实测，结论是开发场景可以换，长期常驻的家庭服务器还不行。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89e45d20a69&quot;}" data-wp-interactive="core/image" data-wp-key="6a89e45d20a69" class="wp-block-image size-large aligncenter wp-lightbox-container"><img decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/cdf9eeec9709350ad4ee855b2a73bc1a_header.webp" alt="Win11 免 Docker 跑 Linux 容器，实测踩了三个坑" class="wp-image-4965" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/cdf9eeec9709350ad4ee855b2a73bc1a_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/cdf9eeec9709350ad4ee855b2a73bc1a_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/cdf9eeec9709350ad4ee855b2a73bc1a_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/cdf9eeec9709350ad4ee855b2a73bc1a_header-768x432.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：XDA Developers</figcaption></figure>





<p class="wp-block-paragraph">差异出在架构：Docker Desktop 的引擎跑在 WSL 共享虚拟机里，wslc 则每启一个容器就单独建一台私有虚拟机。好处是每次启动环境完全一致，坏处是内存和管理方式都得重新适应。</p>



<h2 class="wp-block-heading">一、开启只要一条命令</h2>



<ol class="wp-block-list"><li>执行 <code>wsl --update --pre-release</code> 升级到预览版，wslc 命令随之可用。</li><li>先记住收尾命令 <code>wslc system session terminate</code>，原因见下一节。</li></ol>



<h2 class="wp-block-heading">二、先学会清残留虚拟机</h2>



<ol class="wp-block-list"><li>Docker Desktop 空载时含特权 Windows 服务一起算，占用不到 200 MB 内存；而跑一个 wslc 容器会新建一台以用户名命名的虚拟机，吃掉约 1.5 GB。</li><li>微软称容器用完即消失——容器确实消失了，但托着内存的虚拟机不会，手动执行 WSL 关机也杀不掉。唯一解法是 <code>wslc system session terminate</code>，这条命令藏在三层子命令之下，wslc 自己也不会提示。</li><li>更费内存的是连带效应：启动一个 wslc 容器会同时唤起一份全新的 WSL 共享虚拟机，并把已装的 Ubuntu 重新标记为运行中，一个空闲的命令行提示符合计吃掉 3.4 GB 内存。</li></ol>



<h2 class="wp-block-heading">三、速度实测：差距小到感觉不到</h2>



<ol class="wp-block-list"><li>早期报道称 wslc 启动容器不到一秒，Docker Desktop 要三到八秒。用 alpine 镜像配合计时脚本冷热各跑一轮，结果是热启动 wslc 357 至 384 毫秒、Docker Desktop 426 至 463 毫秒；冷启动（会话已终止或应用已退出）wslc 2387 至 2611 毫秒、Docker Desktop 2629 至 2973 毫秒。</li><li>只有 Docker 非正常退出才拉开差距：强制结束进程后冷启动要 6667 毫秒，连辅助进程一起杀掉则是 9108 毫秒，其中包含一次权限确认弹窗。</li><li>真正的优势是稳定：六次 wslc 启动全部落在 224 毫秒区间内，因为私有虚拟机不继承任何状态，无论怎么被强行拆掉都没有残留需要修复。</li></ol>



<h2 class="wp-block-heading">四、显卡能用，端口有坑</h2>



<ol class="wp-block-list"><li>GPU 加速开箱可用：一个标准的 CUDA 12.4 镜像立刻认出 RTX 5090，只需加 <code>--gpus-all</code> 参数，不必在容器里折腾驱动，宿主机装 CUDA 13.3 驱动同样正常。注意这是显卡半虚拟化而非独占直通，显存和 Windows 桌面共用，规划时要留余量。</li><li>网络默认绑定 127.0.0.1，而不是 Docker 习惯的 0.0.0.0。测试 nginx 时必须显式发布到 0.0.0.0 才通，且会弹出一条归属于 COM Surrogate 的防火墙提示——正是很多人误当成病毒的那种弹窗。</li></ol>



<h2 class="wp-block-heading">五、Compose 目前靠社区补丁</h2>



<ol class="wp-block-list"><li>截至 2.9.3 版本，<code>wslc compose</code> 仍然不可用。社区项目 wslc-compose 用一层轻量 Python 转译补上了这个缺口，通过 pipx（Python 命令行工具的隔离安装器）装好即可。</li><li>实测拿 nginx 加 Postgres 两个服务、配置里写上依赖顺序，结果正常跑通：生成项目独立网络、数据库先于 Web 容器启动、两容器共用去重后的 Alpine 基础层，<code>down -v</code> 也能连网络一起清干净。</li></ol>



<h2 class="wp-block-heading">注意事项</h2>



<ol class="wp-block-list"><li>参数还不全：没有特权模式、设备直通和重启策略，会话一断里面的东西全没，常驻服务不适合搬过来。</li><li>可见性是短板：Docker 的容器摆在图形界面里，wslc 得靠命令行才能看清有什么在跑，目前还没有对应的管理界面。</li></ol>



<p class="wp-block-paragraph">来源：XDA Developers</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>四个开源神器，专治那些想不到能靠软件解决的麻烦</title>
		<link>https://mylogs.cn/%e5%9b%9b%e4%b8%aa%e5%bc%80%e6%ba%90%e7%a5%9e%e5%99%a8%ef%bc%8c%e4%b8%93%e6%b2%bb%e9%82%a3%e4%ba%9b%e6%83%b3%e4%b8%8d%e5%88%b0%e8%83%bd%e9%9d%a0%e8%bd%af%e4%bb%b6%e8%a7%a3%e5%86%b3%e7%9a%84%e9%ba%bb/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 20:37:16 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[效率工具]]></category>
		<category><![CDATA[自托管]]></category>
		<guid isPermaLink="false">https://mylogs.cn/%e5%9b%9b%e4%b8%aa%e5%bc%80%e6%ba%90%e7%a5%9e%e5%99%a8%ef%bc%8c%e4%b8%93%e6%b2%bb%e9%82%a3%e4%ba%9b%e6%83%b3%e4%b8%8d%e5%88%b0%e8%83%bd%e9%9d%a0%e8%bd%af%e4%bb%b6%e8%a7%a3%e5%86%b3%e7%9a%84%e9%ba%bb/</guid>

					<description><![CDATA[大家熟悉的开源软件，多是替代云盘、密码管理器这类「大活」。可生活里不少小麻烦——家里东西随手放、找不到；一家人 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">大家熟悉的开源软件，多是替代云盘、密码管理器这类「大活」。可生活里不少小麻烦——家里东西随手放、找不到；一家人各买各的、重复采购；脚本跑完了没人通知；同一段地址天天复制粘贴——其实也有轻量开源工具能解决，而且大多能自托管、完全免费。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89e45d21b56&quot;}" data-wp-interactive="core/image" data-wp-key="6a89e45d21b56" class="wp-block-image size-large aligncenter wp-lightbox-container"><img decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header.webp" alt="四个开源神器，专治那些想不到能靠软件解决的麻烦" class="wp-image-4884" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header-768x432.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：How-To Geek</figcaption></figure>





<h2 class="wp-block-heading">一、HomeBox：给家里建一份资产清单</h2>



<p class="wp-block-paragraph">解决：搬家翻箱倒柜、想不起备用 HDMI 线放哪。</p>



<p class="wp-block-paragraph">用法：用 Docker 一条命令拉起；按房间、货架建位置，录入物品时加上照片、购买日期和序列号，还能生成二维码方便检索。作者实测空闲内存占用不到 50MB，跑在旧电脑或 NAS 上毫无压力；数据少先用 SQLite，以后量大可换 Postgres。</p>



<h2 class="wp-block-heading">二、KitchenOwl：一家人共享购物清单</h2>



<p class="wp-block-paragraph">解决：你买的，家里人又买一遍。</p>



<p class="wp-block-paragraph">用法：建一个家庭共享清单，成员手机实时同步；添加物品会自动归类。它还能管食谱——粘贴支持的食谱链接，自动把食材拉进清单；另有饮食计划和简单记账。</p>



<h2 class="wp-block-heading">三、ntfy：让任意脚本给你发通知</h2>



<p class="wp-block-paragraph">解决：备份跑完、硬盘快满、门铃触发，你却后知后觉。</p>



<p class="wp-block-paragraph">用法：自托管 ntfy 后，任意脚本用一条 HTTP POST 就能往你手机推消息；一个主题（topic）被订阅，相关设备全收到，能替掉 Discord 通知。</p>



<h2 class="wp-block-heading">四、Espanso：把常用短语一键展开</h2>



<p class="wp-block-paragraph">解决：收货地址、邮件模板、常用代码，天天复制粘贴。</p>



<p class="wp-block-paragraph">用法：设个短触发词，比如输入 :addr 就展开成完整收货地址；桌面端装好 Espanso，手机上也能用类似文本快捷键，重复输入从此交给工具。</p>



<p class="wp-block-paragraph">注意：这几款大多需要自托管（HomeBox、ntfy 用 Docker，KitchenOwl、Espanso 有客户端或服务端），动手前先补一点 Docker 基础更顺手。它们轻量、可私有部署，正适合想逐步离开大厂生态的人。</p>



<p class="wp-block-paragraph">来源：How-To Geek</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Docker 看着吓人？先记住这七条终端命令</title>
		<link>https://mylogs.cn/docker-%e7%9c%8b%e7%9d%80%e5%90%93%e4%ba%ba%ef%bc%9f%e5%85%88%e8%ae%b0%e4%bd%8f%e8%bf%99%e4%b8%83%e6%9d%a1%e7%bb%88%e7%ab%af%e5%91%bd%e4%bb%a4/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 11:27:06 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[命令行]]></category>
		<category><![CDATA[容器]]></category>
		<category><![CDATA[效率工具]]></category>
		<guid isPermaLink="false">https://mylogs.cn/docker-%e7%9c%8b%e7%9d%80%e5%90%93%e4%ba%ba%ef%bc%9f%e5%85%88%e8%ae%b0%e4%bd%8f%e8%bf%99%e4%b8%83%e6%9d%a1%e7%bb%88%e7%ab%af%e5%91%bd%e4%bb%a4/</guid>

					<description><![CDATA[一、为什么 Docker 让人犯怵 第一次接触 Docker 的人，往往被镜像、容器、卷、端口、Compose [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">一、为什么 Docker 让人犯怵</h2>



<p class="wp-block-paragraph">第一次接触 Docker 的人，往往被镜像、容器、卷、端口、Compose 文件和满屏命令劝退，以为必须懂开发才能上手。镜像（image）可以理解成打包好的应用「蓝图」，容器（container）则是照蓝图跑起来的运行实例，二者并不相同。MakeUseOf 一位撰稿人分享，他真正跑起几个自托管应用后才发现，日常反复用的其实就是那么七八条命令。先把这七条记熟，Docker 就不再难懂。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89e45d229c2&quot;}" data-wp-interactive="core/image" data-wp-key="6a89e45d229c2" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/6fb2fca48a76c4fa6dc4637cf4f04da5_header.webp" alt="Docker 看着吓人？先记住这七条终端命令" class="wp-image-4824" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/6fb2fca48a76c4fa6dc4637cf4f04da5_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/6fb2fca48a76c4fa6dc4637cf4f04da5_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/6fb2fca48a76c4fa6dc4637cf4f04da5_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/6fb2fca48a76c4fa6dc4637cf4f04da5_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：MakeUseOf</figcaption></figure>





<h2 class="wp-block-heading">二、七条核心命令</h2>



<ol class="wp-block-list"><li>docker pull nginx：从镜像仓库下载名为 nginx 的镜像，相当于把「原材料」备好；</li><li>docker run -d &#8211;name myserver -p 8080:80 nginx：把镜像变成运行中的容器；-d 后台运行，&#8211;name 起名，-p 把本机 8080 端口映射到容器内 80 端口；</li><li>docker ps：查看正在运行的容器名称、状态、镜像与端口；加 -a（docker ps -a）可看已停止的；</li><li>docker logs myserver：查看容器输出日志，定位启动报错、配置或连接问题；加 -f 实时跟踪；</li><li>docker exec -it myserver sh：进入容器内部开一个交互终端，像在本机一样查文件、跑命令；</li><li>docker stop myserver：用完先停而非删，容器保留在系统里，下次一条命令就能再起；</li><li>docker rm myserver：确定不再需要时彻底删除容器（镜像仍在）。</li></ol>



<p class="wp-block-paragraph">一个最小流程就是：pull 拉镜像、run 起容器、ps 确认在跑、logs 排错、stop 收工。</p>



<h2 class="wp-block-heading">三、理解工作流就不慌</h2>



<p class="wp-block-paragraph">镜像像图纸，容器是照图纸跑起来的实体。端口映射（-p 8080:80）的意思是：在浏览器访问本机 8080，流量会被转进容器里的 80 端口，这样外面的电脑才能打开容器里的服务。七条命令足以起步，其余等踩坑时现学现用。</p>



<h2 class="wp-block-heading">注意事项</h2>



<p class="wp-block-paragraph">docker pull 并非每次必用，Docker 在 run 时缺镜像会自动补拉，但理解「镜像与容器」的关系能少走很多弯路。myserver 只是容器名占位符，换成自己实际名字即可；忘了名字就 docker ps 看 NAMES 列。删除容器前若仍在运行，要先 docker stop 再 docker rm，否则会报错。</p>



<p class="wp-block-paragraph">来源：MakeUseOf</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>旧 Fire 平板别扔：装 Linux 改成厨房菜谱终端</title>
		<link>https://mylogs.cn/old-fire-tablet-recipe-terminal/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 01:54:38 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Fire Tablet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mealie]]></category>
		<category><![CDATA[实用教程]]></category>
		<category><![CDATA[家庭实验室]]></category>
		<category><![CDATA[旧设备利用]]></category>
		<guid isPermaLink="false">https://mylogs.cn/old-fire-tablet-recipe-terminal/</guid>

					<description><![CDATA[旧 Fire 平板别扔：装 Linux 改成厨房菜谱终端 一台没人要的 2021 款 Fire 平板，被一位作 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">旧 Fire 平板别扔：装 Linux 改成厨房菜谱终端</h2>



<p class="wp-block-paragraph">一台没人要的 2021 款 Fire 平板，被一位作者刷上 Linux、接上 Docker 和开源菜谱库，变成了厨房里专属的「菜谱终端」。这个项目不需要把找菜谱的事外包给大模型，也不用在长文里翻找做法，是旧设备再利用和家庭实验室入门的好例子。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89e45d23da9&quot;}" data-wp-interactive="core/image" data-wp-key="6a89e45d23da9" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/4806af1100ba6852675ddb64ec93a6a2_header.webp" alt="旧 Fire 平板别扔：装 Linux 改成厨房菜谱终端" class="wp-image-4782" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/4806af1100ba6852675ddb64ec93a6a2_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/4806af1100ba6852675ddb64ec93a6a2_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/4806af1100ba6852675ddb64ec93a6a2_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/4806af1100ba6852675ddb64ec93a6a2_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：How-To Geek</figcaption></figure>





<h3 class="wp-block-heading">动机：给爱做饭的人一个干净界面</h3>



<p class="wp-block-paragraph">作者戴维·巴克（David J. Buck）的妻子很会做饭，但找菜谱一直麻烦。她手头有一台不再使用的平板，市面上有不少在线菜谱，也攒了几本纸质菜谱，但都谈不上「顺手」。巴克不想把找菜谱这事儿交给聊天机器人，更不想打开一个菜谱前先读完博主的人生故事，于是想做一台联网的专属菜谱终端当礼物。</p>



<p class="wp-block-paragraph">他最初的计划是用一台 Kindle Fire HD7，连 Fastboot 线都试了，设备始终不配合，只好放弃。备用方案是一台 2021 款的 Fire Tablet——这台机器刷 Linux 顺利得多（刷机细节他留到后续文章细说）。</p>



<h3 class="wp-block-heading">三件套：Docker、Python 与 Mealie</h3>



<p class="wp-block-paragraph">整套方案跑在一台常开的 Windows 电脑上：装好 Docker Desktop，再用 Python 的 Textual 框架做界面。平板上运行 Linux，后端则由 Docker、在线资源和 Python 共同组成。</p>



<p class="wp-block-paragraph">核心是一个叫 Mealie 的开源菜谱管理工具（项目托管在 GitHub 的 mealie-recipes/mealie）。它既能从网址一键导入菜谱，也能手动录入。巴克把妻子常做的几道菜加进去，又从开源菜谱库 Open Stove 抓了一些自己喜欢的方子。接着他在 Mealie 里生成一组 API 令牌，接进终端脚本。</p>



<p class="wp-block-paragraph">脚本本身用 Python 的 Requests 库发请求、用 Textual 搭界面，取名 STEVE——取自妻子的一位旧上司，也是帮巴克解答 Python 问题的朋友。</p>



<h3 class="wp-block-heading">跑起来：左选右看，三小时搞定</h3>



<p class="wp-block-paragraph">在平板的 Linux 环境里建好虚拟环境（venv）后，用 <code>./.venv/bin/python steve.py</code> 启动即可；连接其他设备时，他把 Wi-Fi 设为「专用」（Private）以防被随意访问。</p>



<p class="wp-block-paragraph">界面很简单：左边栏选菜谱，右边栏显示内容。每次往 Mealie 里新增菜谱（常常一次加好几道），重开 STEVE 就会同步更新。巴克说，除去折腾 Textual 界面和往 Mealie 里录菜谱的时间，真正搭起来也就三小时左右。</p>



<h3 class="wp-block-heading">旧物复活的意义</h3>



<p class="wp-block-paragraph">这台原本打算回收的平板，最终成了妻子在厨房随手查方的专用终端；巴克自己也借着项目多写了 Python、用熟了 Textual。他认为这是家庭实验室「一举两得」的典型：设备不浪费，家人得便利。</p>



<p class="wp-block-paragraph">想照做的读者要注意，Fire Tablet 需要先「改装」（解锁引导加载并刷机）才能装 Linux；Kindle HD7 在本例里难以搞定，2021 款 Fire Tablet 则顺利得多。刷机有变砖风险，动手前务必确认机型与教程对应。</p>



<p class="has-small-font-size wp-block-paragraph">来源：How-To Geek（作者 David J. Buck）</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>远程控制别再交月费，一台服务器自己管</title>
		<link>https://mylogs.cn/%e8%bf%9c%e7%a8%8b%e6%8e%a7%e5%88%b6%e5%88%ab%e5%86%8d%e4%ba%a4%e6%9c%88%e8%b4%b9%ef%bc%8c%e4%b8%80%e5%8f%b0%e6%9c%8d%e5%8a%a1%e5%99%a8%e8%87%aa%e5%b7%b1%e7%ae%a1/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Thu, 13 Aug 2026 04:29:49 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[RustDesk]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[自托管]]></category>
		<category><![CDATA[远程桌面]]></category>
		<guid isPermaLink="false">https://mylogs.cn/%e8%bf%9c%e7%a8%8b%e6%8e%a7%e5%88%b6%e5%88%ab%e5%86%8d%e4%ba%a4%e6%9c%88%e8%b4%b9%ef%bc%8c%e4%b8%80%e5%8f%b0%e6%9c%8d%e5%8a%a1%e5%99%a8%e8%87%aa%e5%b7%b1%e7%ae%a1/</guid>

					<description><![CDATA[迷你主机塞在电视柜后面，家庭服务器摆在阳台角落。想重启一个 Docker 容器、传个文件、装次更新，总不能每次 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">迷你主机塞在电视柜后面，家庭服务器摆在阳台角落。想重启一个 Docker 容器、传个文件、装次更新，总不能每次都拖出显示器和键盘。远程控制软件因此成了刚需，但免费额度越收越紧，包月订阅又为一台自用机器付得肉疼。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89e45d2508c&quot;}" data-wp-interactive="core/image" data-wp-key="6a89e45d2508c" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/eb13d4fbccce9a563647d39d38900ce6_header.webp" alt="远程控制别再交月费，一台服务器自己管" class="wp-image-4660" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/eb13d4fbccce9a563647d39d38900ce6_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/eb13d4fbccce9a563647d39d38900ce6_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/eb13d4fbccce9a563647d39d38900ce6_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/eb13d4fbccce9a563647d39d38900ce6_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：XDA Developers</figcaption></figure>





<p class="wp-block-paragraph">XDA 撰稿人分享了自己的替换过程：过去一直靠 TeamViewer 管理迷你主机，稳定好用，但随着家里自建服务越来越多，付费方案里那些面向企业运维的高级功能几乎用不上——需求无非是连上自己的几台设备而已。最终换成了开源的 RustDesk，并把中转服务器也搬到了自己的机器上。</p>



<p class="wp-block-paragraph">RustDesk 是一款免费开源的远程桌面工具，支持无人值守连接、文件传输、剪贴板共享和多显示器，客户端覆盖 Windows、Linux、macOS、Android 和 iPhone。它最大的区别在于：既可以用官方公共服务器，也能自己搭一套中转服务，让连接不经过别人的服务器。</p>



<h2 class="wp-block-heading">一、先跑起来：Docker 部署服务端</h2>



<p class="wp-block-paragraph">服务端由两个组件构成，<code>hbbs</code> 负责 ID 注册与打洞，<code>hbbr</code> 负责中继转发，两个都要跑。在装好 Docker 的 Linux 机器上执行三条命令：</p>



<pre class="wp-block-code"><code>sudo docker image pull rustdesk/rustdesk-server
sudo docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbs
sudo docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbr</code></pre>



<p class="wp-block-paragraph">几点要留意：<code>--net=host</code> 只在 Linux 上有效，作用是让服务看到真实来访 IP 而不是容器内网地址；Windows 上要去掉 <code>sudo</code> 和 <code>--net=host</code>。如果连接有问题，先把 <code>--net=host</code> 去掉试试。<code>-v ./data:/root</code> 一定要挂上，升级或重建容器时数据才不会丢。看不到日志可以用 <code>docker logs hbbs</code> 查看。</p>



<h2 class="wp-block-heading">二、放行端口</h2>



<p class="wp-block-paragraph">在防火墙和路由器上开放这几个端口，缺一个都可能连不上：</p>



<ol class="wp-block-list"><li><code>21115</code>（TCP）：NAT 类型检测。</li><li><code>21116</code>（TCP 和 UDP 都要开）：UDP 用于 ID 注册和心跳，TCP 用于打洞与连接。</li><li><code>21117</code>（TCP）：中继服务。</li><li><code>21114</code>（TCP）：网页控制台，仅专业版可用，开源版不需要。</li><li><code>21118</code>、<code>21119</code>（TCP）：网页客户端专用。不用网页端就保持关闭——官方明确提示，直接暴露这两个端口存在伪造来访 IP 的风险。</li></ol>



<h2 class="wp-block-heading">三、取出公钥</h2>



<p class="wp-block-paragraph">首次运行 <code>hbbs</code> 时会自动生成一对密钥。到挂载出来的 <code>data</code> 目录里找到 <code>id_ed25519.pub</code> 文件，把里面的字符串复制出来备用。这是用于加密连接的公钥，和商业版的许可证密钥是两回事。</p>



<h2 class="wp-block-heading">四、客户端指向自己的服务器</h2>



<p class="wp-block-paragraph">被控端和主控端都要设置一遍：</p>



<ol class="wp-block-list"><li>打开 RustDesk 客户端，点 ID 旁边的三点菜单 [ ⋮ ]，选择&#8221;网络&#8221;。</li><li>点解锁按钮，按提示提升权限。</li><li>在&#8221;ID 服务器&#8221;填服务器地址，例如 <code>hbbs.example.com</code> 或 <code>hbbs.example.com:21116</code>。</li><li>在&#8221;密钥&#8221;栏粘贴上一步取到的公钥内容。</li><li>中继服务器和 API 服务器留空即可，RustDesk 会自动推导，中继默认指向 21117 端口。</li></ol>



<p class="wp-block-paragraph">设备多的时候不必逐台手填：在配好的那台机器上进&#8221;设置 → 网络&#8221;，解锁后点&#8221;导出服务器配置&#8221;，复制得到的字符串；换到新设备同样进&#8221;设置 → 网络&#8221;，解锁后点&#8221;导入服务器配置&#8221;，设置会自动填好，最后点&#8221;应用&#8221;。</p>



<h2 class="wp-block-heading">注意事项</h2>



<p class="wp-block-paragraph">如果所在网络打洞成功率低，可以在 docker-compose 的 hbbs 环境变量里加上 <code>ALWAYS_USE_RELAY=Y</code>，强制走中继，稳定性换带宽。服务器建议放在有公网 IP 的机器上，否则外网设备找不到它。</p>



<p class="wp-block-paragraph">来源：XDA Developers</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>家庭服务器弃用 Unraid 转投 Ubuntu，Docker 反而更顺手</title>
		<link>https://mylogs.cn/unraid-to-ubuntu-homelab-docker/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Wed, 12 Aug 2026 00:24:39 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Homelab]]></category>
		<category><![CDATA[NAS]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unraid]]></category>
		<category><![CDATA[家庭服务器]]></category>
		<category><![CDATA[自托管]]></category>
		<guid isPermaLink="false">https://mylogs.cn/unraid-to-ubuntu-homelab-docker/</guid>

					<description><![CDATA[家庭服务器系统怎么选，是很多自托管玩家反复纠结的问题。一位长期使用 Unraid 的用户在折腾了近五年后，于  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">家庭服务器系统怎么选，是很多自托管玩家反复纠结的问题。一位长期使用 Unraid 的用户在折腾了近五年后，于 2025 年初把 Docker 负载从 Unraid 迁移到了 Ubuntu Server，结论是：存储仍交给 Unraid，容器编排交给 Ubuntu，整套家庭服务器反而跑得更顺。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89e45d26257&quot;}" data-wp-interactive="core/image" data-wp-key="6a89e45d26257" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/513e9358bbdae6b50a531fc3c5400acb_header.webp" alt="家庭服务器弃用 Unraid 转投 Ubuntu，Docker 反而更顺手" class="wp-image-4513" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/513e9358bbdae6b50a531fc3c5400acb_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/513e9358bbdae6b50a531fc3c5400acb_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/513e9358bbdae6b50a531fc3c5400acb_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/513e9358bbdae6b50a531fc3c5400acb_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：How-To Geek</figcaption></figure>





<p class="wp-block-paragraph">这位作者的家庭服务器最早围绕一台联想 RD440 机架式服务器搭建，Unraid 一肩挑起存储、虚拟机与 Docker 三件事。在 2021 年那个时间点，TrueNAS 的稳定版还没有今天这样完善的 Docker 支持，原有的 jail 机制也远不如 Unraid 上的 Docker 好用，于是 Unraid 成了「什么都让一套系统搞定」的自然选择。</p>



<h2 class="wp-block-heading">Unraid 曾是全能选手</h2>



<p class="wp-block-paragraph">客观地说，Unraid 作为存储平台表现相当出色，把存储、Docker 和虚拟机整合在一起，对刚接触容器的新手也很友好。作者坦言，正是在 Unraid 的图形界面里第一次用上了 Docker，比直接扑进 Docker Compose 或命令行要平缓得多。</p>



<p class="wp-block-paragraph">但「能做某事」不代表「适合做每件事」。随着使用深入，作者想要的容器功能越来越多，Unraid 在不少地方把简单任务变得不必要地麻烦，尤其是当需求超出它预设的模板时。</p>



<h2 class="wp-block-heading">卡在「应用模板」上</h2>



<p class="wp-block-paragraph">Unraid 的「应用模板」需要由社区或容器维护者手动提交，并非自动生成。作者开始遇到想用的容器却没有对应模板，只能手工凑配置，过程相当痛苦。模板本身虽好用，但修改起来往往比帮忙更添堵。</p>



<p class="wp-block-paragraph">更烦人的是查找成本：在社区仓库里搜一个容器，可能冒出十几个看似相同的模板，有时标「官方」有时又不标，挑出最合适的一个成了日常消耗。相比之下，直接从维护者的 GitHub 仓库拿官方的 Compose 文件或镜像，定位反而清晰得多。</p>



<h2 class="wp-block-heading">换回 Ubuntu 后打开了门</h2>



<p class="wp-block-paragraph">作者使用 Ubuntu Server 已超过十五年，命令行环境最为熟悉，迁移到 Ubuntu 跑 Docker 是顺理成章的决定。Ubuntu 原生支持 Docker，几乎每个主流容器都自带 Compose 文件，没有就用手写或 Portainer 补全，不必再受模板有无的制约。</p>



<p class="wp-block-paragraph">迁移带来的直接好处是「几乎任何容器都能跑」，而且运行更稳定。对需要精细控制网络、存储卷和依赖关系的服务来说，直接用维护者提供的清单部署，比在模板系统里反复试错省心得多。</p>



<h2 class="wp-block-heading">把家庭服务器拆开管</h2>



<p class="wp-block-paragraph">这篇文章给出的核心经验，是把家庭服务器按职责拆开：存储这件 Unraid 擅长的事继续交给它，Docker 编排这件 Ubuntu 擅长的事交给 Ubuntu。作者表示，正是因为 2025 年初把 Docker 从 Unraid 迁到 Ubuntu Server，家庭服务器才真正「起飞」，这是他为整套系统做过最对的一个决定。</p>



<p class="wp-block-paragraph">对正在权衡家庭服务器架构的玩家，这未必是「Unraid 不如 Ubuntu」的结论，而是一次关于职责分离的提醒：当一套全能系统开始拖慢特定需求时，把最吃力的那块拆出去，往往比硬扛更划算。</p>



<p class="has-small-font-size wp-block-paragraph">来源：How-To Geek，作者 Patrick Campanale</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI 编程智能体也能开「安全模式」：Docker 出的沙箱怎么做到不关弹窗也不怕</title>
		<link>https://mylogs.cn/docker-sandboxes-ai-coding-agents/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Mon, 10 Aug 2026 06:37:20 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[AI 编程]]></category>
		<category><![CDATA[Claude Code]]></category>
		<category><![CDATA[Codex]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[开发者工具]]></category>
		<category><![CDATA[智能体]]></category>
		<category><![CDATA[沙箱]]></category>
		<guid isPermaLink="false">https://mylogs.cn/docker-sandboxes-ai-coding-agents/</guid>

					<description><![CDATA[AI 编程智能体也能开「安全模式」：Docker 出的沙箱怎么做到不关弹窗也不怕 编程智能体一旦放手，效率确实 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">AI 编程智能体也能开「安全模式」：Docker 出的沙箱怎么做到不关弹窗也不怕</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89e45d27271&quot;}" data-wp-interactive="core/image" data-wp-key="6a89e45d27271" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="1200" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/2cf5101d12b6d0c100e53696d7cdebb1_header.webp" alt="AI 编程智能体也能开「安全模式」：Docker 出的沙箱怎么做到不关弹窗也不怕" class="wp-image-4279" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/2cf5101d12b6d0c100e53696d7cdebb1_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/2cf5101d12b6d0c100e53696d7cdebb1_header-300x300.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/2cf5101d12b6d0c100e53696d7cdebb1_header-1024x1024.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/2cf5101d12b6d0c100e53696d7cdebb1_header-150x150.webp 150w, https://mylogs.cn/wp-content/uploads/2026/08/2cf5101d12b6d0c100e53696d7cdebb1_header-768x768.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：Docker 官方博客</figcaption></figure>





<p class="wp-block-paragraph">编程智能体一旦放手，效率确实高；可真放手，又担心它顺手改错配置、误删文件，甚至把 .ssh 里的密钥亮出来。Docker 最近把 Sandboxes 推到了可用版本，核心思路是给 Claude Code、Codex、Kiro 这些智能体一人一个轻量级 microVM，让它们在该改的目录里使劲折腾，宿主机和敏感文件一概碰不到。</p>



<h2 class="wp-block-heading">为什么容器还不够</h2>



<p class="wp-block-paragraph">用普通容器隔离智能体看起来省事，但很快会遇到三个坎。第一，OS 自带的沙箱机制在不同系统上行为不一致，写好的脚本换个平台就失灵。第二，智能体经常要跑 <code>docker build</code> 或 <code>docker compose up</code>，把 Docker socket 挂进容器等于把宿主机的 Docker 守护进程暴露给它。第三，传统虚拟机隔离强，但启动慢、配置重，换个项目就得重新搭。</p>



<p class="wp-block-paragraph">Docker Sandboxes 想走的是第四条路：比容器硬、比虚拟机快，还允许「Docker 里跑 Docker」。</p>



<h2 class="wp-block-heading">microVM 里关一只智能体</h2>



<p class="wp-block-paragraph">每个 Sandboxes 实例跑在一个独立 microVM 里，只把当前项目目录挂载进去。智能体可以安装系统包、改配置、删测试文件、甚至在里面再起容器，但宿主机的文件系统、网络栈、Docker daemon 都不在视野内。出了错也简单，一个命令删掉沙箱，重新起一个干净的即可。</p>



<p class="wp-block-paragraph">它自带几层安全控制：</p>



<ul class="wp-block-list"><li><strong>网络白名单/黑名单</strong>：可以只让智能体访问特定域名，默认 deny 状态下逐个放行。</li><li><strong>文件系统最小挂载</strong>：只有项目工作区可见，家目录、系统配置、密钥目录默认隔离。</li><li><strong>安全的 Docker 访问</strong>：智能体在沙箱内自建容器，不需要接触宿主 Docker daemon。</li></ul>



<p class="wp-block-paragraph">Docker 给出的安装方式也很轻：macOS 上 <code>brew install docker/tap/sbx</code>，Windows 上 <code>winget install Docker.sbx</code>。不需要先装 Docker Desktop。</p>



<h2 class="wp-block-heading">哪些智能体能直接用</h2>



<p class="wp-block-paragraph">官方列出支持 Claude Code、Codex CLI、GitHub Copilot CLI、Gemini CLI、OpenCode、Kiro 以及 Docker Agent。另外像 NanoClaw、OpenClaw 这类新一代自主系统也能跑在里面，省下一台专门用来隔离的 Mac mini。</p>



<p class="wp-block-paragraph">这些工具原本大多有个 <code>--dangerously-skip-permissions</code> 模式，开发者戏称为「YOLO 模式」——不弹窗、直接执行，效率最高也最危险。Docker 把它变成了默认：沙箱先替你画好边界，里面随它怎么 YOLO。</p>



<h2 class="wp-block-heading">这还不是终点</h2>



<p class="wp-block-paragraph">Docker 在产品页和博客里列出的下一步包括 Linux 支持、MCP Gateway 支持、向宿主机暴露端口，以及接入更多智能体。目前 Sandboxes 可在 macOS 和 Windows 上直接下载使用。</p>



<p class="wp-block-paragraph">对普通开发者来说，这意味着一个之前很纠结的选择题被改了题面：要么每步都点确认当「人形剪贴板」，要么冒着把环境搞坏的风险让智能体狂奔。现在可以先画好一个硬边界，再把钥匙交给它。</p>



<p class="has-small-font-size wp-block-paragraph">来源：Docker 官方博客</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>收藏的网页说没就没？自己搭个存档站</title>
		<link>https://mylogs.cn/%e6%94%b6%e8%97%8f%e7%9a%84%e7%bd%91%e9%a1%b5%e8%af%b4%e6%b2%a1%e5%b0%b1%e6%b2%a1%ef%bc%9f%e8%87%aa%e5%b7%b1%e6%90%ad%e4%b8%aa%e5%ad%98%e6%a1%a3%e7%ab%99/</link>
					<comments>https://mylogs.cn/%e6%94%b6%e8%97%8f%e7%9a%84%e7%bd%91%e9%a1%b5%e8%af%b4%e6%b2%a1%e5%b0%b1%e6%b2%a1%ef%bc%9f%e8%87%aa%e5%b7%b1%e6%90%ad%e4%b8%aa%e5%ad%98%e6%a1%a3%e7%ab%99/#respond</comments>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Sun, 09 Aug 2026 02:46:10 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[ArchiveBox]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[开源工具]]></category>
		<category><![CDATA[网页存档]]></category>
		<category><![CDATA[自托管]]></category>
		<guid isPermaLink="false">https://mylogs.cn/%e6%94%b6%e8%97%8f%e7%9a%84%e7%bd%91%e9%a1%b5%e8%af%b4%e6%b2%a1%e5%b0%b1%e6%b2%a1%ef%bc%9f%e8%87%aa%e5%b7%b1%e6%90%ad%e4%b8%aa%e5%ad%98%e6%a1%a3%e7%ab%99/</guid>

					<description><![CDATA[收藏夹看着靠谱，实际只存了一串网址。原站改版、下架或者干脆关停，点开就是一个 404。技术文档、研究资料、多年 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">收藏夹看着靠谱，实际只存了一串网址。原站改版、下架或者干脆关停，点开就是一个 404。技术文档、研究资料、多年前在论坛里翻到的那条冷门解法，丢了往往就再也搜不回来。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89e45d283a3&quot;}" data-wp-interactive="core/image" data-wp-key="6a89e45d283a3" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/b2f37556270e0ee24988f8ab518eb814_header.webp" alt="收藏的网页说没就没？自己搭个存档站" class="wp-image-4136" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/b2f37556270e0ee24988f8ab518eb814_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/b2f37556270e0ee24988f8ab518eb814_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/b2f37556270e0ee24988f8ab518eb814_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/b2f37556270e0ee24988f8ab518eb814_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：MakeUseOf</figcaption></figure>





<p class="wp-block-paragraph">MakeUseOf 撰稿人分享了一套自建方案：用开源工具 ArchiveBox 把整页内容留在自己的硬盘上，并做了一次严格验证——先存档，再把原页面彻底下线，看还能不能还原。</p>



<h2 class="wp-block-heading">一、部署</h2>



<ol class="wp-block-list"><li>准备一台 Ubuntu 26.04 虚拟机，4GB 内存，通过 Docker 安装 ArchiveBox。</li><li>版本选稳定的 0.7.4，而不是仍在改版中的 0.9 开发分支，可以少踩不少坑。</li><li>官方 Compose 文件有 278 行，捆了搜索、计划任务、Nginx 等一堆用不上的组件。实际只需要一个服务：镜像 <code>archivebox/archivebox:0.7.4</code>，启动命令 <code>server --quick-init 0.0.0.0:8000</code>，映射 8000 端口，把 <code>./data</code> 挂载到容器内 <code>/data</code>，环境变量把 ALLOWED_HOSTS 设为 <code>*</code>、PUBLIC_INDEX 和 PUBLIC_SNAPSHOTS 都设为 <code>False</code>。</li><li>依次执行三条命令完成初始化、创建管理员并启动面板：</li></ol>



<pre class="wp-block-code"><code>docker compose run --rm archivebox init
   docker compose run --rm archivebox manage createsuperuser
   docker compose up -d</code></pre>



<ol class="wp-block-list"><li>关掉向 Archive.org 回传的开关，保证一切留在本地：<code>docker compose run --rm archivebox config --set SAVE_ARCHIVE_DOT_ORG=False</code>。</li></ol>



<h2 class="wp-block-heading">二、一次快照留下七份副本</h2>



<p class="wp-block-paragraph">抓取完成后，ArchiveBox 保留原地址，同时生成带时间戳的快照，里面包含 Wget 抓下的 HTML 副本、SingleFile 单文件页面、PDF、截图、渲染后的 DOM、正文提取版和 WARC 文件。SingleFile 最接近原貌且可正常浏览，正文提取版只留文字，PDF 和截图作为兜底——结果页看起来更像一份恢复菜单，而不是书签列表。</p>



<h2 class="wp-block-heading">三、把原页面关掉之后</h2>



<p class="wp-block-paragraph">该撰稿人自建了一个含图片、说明文字和一个可下载配置文件的小页面，跑在同一台服务器的 8081 端口，页面里硬编码了标记 COPPER-FINCH-8247 便于核对。以深度 1 抓取快照后，他停掉服务并把源目录整个移走。</p>



<p class="wp-block-paragraph">刷新浏览器，原地址报连接错误，而 8000 端口的存档照常打开：SingleFile 和 Wget 版本保留了排版与图片，PDF、截图、DOM、正文提取里都能搜到那个标记。存档前后用 <code>sha256sum</code> 对那个配置文件做校验，哈希值完全一致。</p>



<h2 class="wp-block-heading">四、配上浏览器扩展才真正好用</h2>



<ol class="wp-block-list"><li>安装 ArchiveBox 官方的 Firefox 扩展。</li><li>在扩展设置里填写本地实例地址，例如 <code>http://192.168.91.136:8000</code>。</li><li>浏览器里若已登录 ArchiveBox，扩展会直接复用该会话，此后一键就能存下当前页面。</li></ol>



<p class="wp-block-paragraph">实测存一篇带多张图片、脚本和广告的长文章，SingleFile、Wget、PDF、截图、DOM 和正文提取全部成功，只有 Original 格式因为目标站不允许被嵌入而报了警告。</p>



<h2 class="wp-block-heading">注意事项</h2>



<p class="wp-block-paragraph">存档掌握在自己手里，责任也一样。虚拟机一旦损坏，没备份 data 目录就前功尽弃。ArchiveBox 也无法保证完美复现需要登录的页面、视频播放器和重度 JavaScript 界面。空间方面：example.com 只占 384KB、17 个文件，加上那个自建测试页涨到 1.5MB、52 个文件，再加一篇长文章就到了 34MB、158 个文件。书签只存网址，存档要存 HTML、图片、PDF、截图、WARC 和元数据，量一大就会明显吃盘，因此值得只留文档、研究资料这类真正需要引用的内容。</p>



<p class="wp-block-paragraph">来源：MakeUseOf</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mylogs.cn/%e6%94%b6%e8%97%8f%e7%9a%84%e7%bd%91%e9%a1%b5%e8%af%b4%e6%b2%a1%e5%b0%b1%e6%b2%a1%ef%bc%9f%e8%87%aa%e5%b7%b1%e6%90%ad%e4%b8%aa%e5%ad%98%e6%a1%a3%e7%ab%99/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Notion打开要等五秒，不如自己搭一个</title>
		<link>https://mylogs.cn/notion%e6%89%93%e5%bc%80%e8%a6%81%e7%ad%89%e4%ba%94%e7%a7%92%ef%bc%8c%e4%b8%8d%e5%a6%82%e8%87%aa%e5%b7%b1%e6%90%ad%e4%b8%80%e4%b8%aa/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Wed, 05 Aug 2026 16:19:48 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[AppFlowy]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Notion]]></category>
		<category><![CDATA[笔记工具]]></category>
		<category><![CDATA[自托管]]></category>
		<guid isPermaLink="false">https://mylogs.cn/notion%e6%89%93%e5%bc%80%e8%a6%81%e7%ad%89%e4%ba%94%e7%a7%92%ef%bc%8c%e4%b8%8d%e5%a6%82%e8%87%aa%e5%b7%b1%e6%90%ad%e4%b8%80%e4%b8%aa/</guid>

					<description><![CDATA[你有没有这种感觉：Notion 用了几年，页面越堆越多，点开主面板得愣上好几秒。 这不是错觉。Notion 官 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">你有没有这种感觉：Notion 用了几年，页面越堆越多，点开主面板得愣上好几秒。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89e45d293b7&quot;}" data-wp-interactive="core/image" data-wp-key="6a89e45d293b7" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/ea124bcda068b16b038d63026856d1fe_header.webp" alt="Notion打开要等五秒，不如自己搭一个" class="wp-image-3701" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/ea124bcda068b16b038d63026856d1fe_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/ea124bcda068b16b038d63026856d1fe_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/ea124bcda068b16b038d63026856d1fe_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/ea124bcda068b16b038d63026856d1fe_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：XDA Developers</figcaption></figure>





<p class="wp-block-paragraph">这不是错觉。Notion 官方帮助中心自己承认，数据库会随着页面、属性和复杂排序筛选的增加而变慢，单个数据库到 25 万行就彻底写不进去了。官方给的建议是拆分大页面、隐藏属性、压平嵌套——说白了，就是少用点你正在付费的东西。</p>



<p class="wp-block-paragraph">离线也没好到哪去。Notion 2025 年才补上离线模式，还得按页面一个个手动开启；标了离线的页面，它的子页面不会跟着下载，嵌入内容、按钮和 AI 功能离线全部失效，数据库只能看 50 行。</p>



<p class="wp-block-paragraph">XDA 撰稿人的解法是换成 AppFlowy——一个开源的块编辑器（内容以「块」为单位拼装的笔记工具），斜杠命令、块类型、拖拽手感几乎照搬 Notion，关键是能自己搭在电脑上。</p>



<h2 class="wp-block-heading">搭起来只有四步</h2>



<ol class="wp-block-list"><li>装好 Docker Desktop（容器运行环境，装完不用管）；</li><li>用一条 git 命令把 AppFlowy Cloud 仓库拉到本地；</li><li>把 deploy.env 模板复制成 .env；</li><li>运行 <code>docker compose up -d</code>，它会拉下约十个容器，几分钟跑完。</li></ol>



<p class="wp-block-paragraph">之后打开 localhost/console 创建账号，桌面端或网页端把服务器地址填成 localhost 即可登录。SMTP、第三方登录、证书这些只在团队协作或对外开放时才需要配。</p>



<p class="wp-block-paragraph">我的判断是，这套方案最值钱的不是省钱，而是数据和编辑器跑在同一台机器上——页面秒开，拔了网线照样能写。代价也很明确：数据库功能没 Notion 那么密集，表格、看板、日历、筛选排序这些基础项齐了，复杂玩法就别指望。</p>



<p class="wp-block-paragraph">要是你的 Notion 也开始卡了，先别急着清页面，试试把它搬回自己电脑。</p>



<p class="wp-block-paragraph">来源：XDA Developers</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
