<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docker on 随手记</title><link>https://www.bufio.cn/tags/docker/</link><description>Recent content in Docker on 随手记</description><generator>Hugo</generator><language>zh-cn</language><copyright>© 2026 &lt;a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener"&gt;苏ICP备2023022553号-1&lt;/a&gt;</copyright><lastBuildDate>Tue, 19 May 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://www.bufio.cn/tags/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>在 Docker 中部署 mihomo，并让本机与局域网电脑接入</title><link>https://www.bufio.cn/posts/mihomo-docker-lan-setup/</link><pubDate>Tue, 19 May 2026 00:00:00 +0800</pubDate><guid>https://www.bufio.cn/posts/mihomo-docker-lan-setup/</guid><description>&lt;p&gt;mihomo 是 Clash.Meta 的延续版本，常见用法是把它作为一个代理内核运行在一台长期在线的机器上，然后让本机、手机、Windows 电脑、Linux 电脑都通过这台机器访问代理服务。&lt;/p&gt;
&lt;p&gt;这篇文章记录一个最实用的部署方式：在 Docker 里运行 mihomo，宿主机负责提供端口，局域网里的其他设备只需要把 HTTP / SOCKS 代理指向这台机器即可。&lt;/p&gt;
&lt;h2 id="总览先看整体链路"&gt;总览：先看整体链路&lt;/h2&gt;
&lt;p&gt;假设运行 Docker 的机器局域网 IP 是 &lt;code&gt;192.168.1.10&lt;/code&gt;，mihomo 在这台机器上监听 &lt;code&gt;7890&lt;/code&gt; 端口：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Windows / Linux / 手机
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; | HTTP / SOCKS 代理：192.168.1.10:7890
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Docker 宿主机：192.168.1.10
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; | mihomo 容器
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; v
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;按规则直连或走代理节点
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;关键点只有三个：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;mihomo 配置里开启 &lt;code&gt;allow-lan: true&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;mihomo 监听地址使用 &lt;code&gt;bind-address: &amp;quot;*&amp;quot;&lt;/code&gt; 或宿主机局域网 IP。&lt;/li&gt;
&lt;li&gt;Docker 把 &lt;code&gt;7890&lt;/code&gt; 端口暴露给局域网。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="第一步准备目录"&gt;第一步：准备目录&lt;/h2&gt;
&lt;p&gt;在准备用作代理网关的机器上创建目录：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir -p ~/mihomo/config
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/mihomo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;后面所有文件都放在 &lt;code&gt;~/mihomo&lt;/code&gt; 目录里：&lt;/p&gt;</description></item><item><title>Docker 日常维护、运行调试与排错教程：从 Compose 到 Swarm</title><link>https://www.bufio.cn/posts/docker-maintenance-debugging-compose-swarm/</link><pubDate>Wed, 29 Apr 2026 16:25:00 +0800</pubDate><guid>https://www.bufio.cn/posts/docker-maintenance-debugging-compose-swarm/</guid><description>&lt;p&gt;Docker 用久以后，问题通常不在“会不会启动一个容器”，而在日常维护和排错：容器为什么退出、日志在哪里看、端口为什么不通、磁盘为什么爆了、Compose 更新为什么没生效、Swarm 服务为什么一直 Pending。&lt;/p&gt;
&lt;p&gt;这篇文章按实际运维顺序整理：先看单机 Docker 的容器、镜像、日志、网络、存储和资源排查，再看 Compose 的项目级管理，最后看 Swarm 的集群级服务维护。&lt;/p&gt;
&lt;h2 id="总览docker-排错先分清三种运行层级"&gt;总览：Docker 排错先分清三种运行层级&lt;/h2&gt;
&lt;p&gt;Docker 相关问题先不要急着敲命令，先判断当前应用跑在哪一层：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;层级&lt;/th&gt;
 &lt;th&gt;常见命令&lt;/th&gt;
 &lt;th&gt;管理对象&lt;/th&gt;
 &lt;th&gt;适合场景&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;单机 Docker&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;docker run&lt;/code&gt;、&lt;code&gt;docker ps&lt;/code&gt;、&lt;code&gt;docker logs&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;container、image、volume、network&lt;/td&gt;
 &lt;td&gt;单机服务、临时调试、本地开发&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Docker Compose&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;docker compose up&lt;/code&gt;、&lt;code&gt;docker compose logs&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;一个项目里的多服务&lt;/td&gt;
 &lt;td&gt;开发环境、小型部署、依赖编排&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Docker Swarm&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;docker service&lt;/code&gt;、&lt;code&gt;docker stack&lt;/code&gt;、&lt;code&gt;docker node&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;service、task、stack、node&lt;/td&gt;
 &lt;td&gt;多节点集群、滚动更新、副本调度&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;排错时也按这个顺序看：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;服务不可用
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; 容器是否存在、是否在运行
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; 日志里有没有启动失败或业务异常
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; 端口映射和网络是否正确
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; volume、配置、环境变量是否正确
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; CPU、内存、磁盘是否打满
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; 如果是 Compose，看 project/service 维度
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -&amp;gt; 如果是 Swarm，看 node/service/task 维度
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="一日常巡检先看-docker-基本状态"&gt;一、日常巡检：先看 Docker 基本状态&lt;/h2&gt;
&lt;p&gt;先确认 Docker daemon 是否正常：&lt;/p&gt;</description></item></channel></rss>