<?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 JiangYM's Blog</title><link>https://jiangym.top/tags/docker/</link><description>Recent content from JiangYM's Blog</description><generator>Hugo</generator><language>zh-cn</language><managingEditor>xxx@example.com (JiangYM)</managingEditor><webMaster>xxx@example.com (JiangYM)</webMaster><copyright>本博客所有文章除特别声明外，均采用 BY-NC-SA 许可协议。转载请注明出处！</copyright><lastBuildDate>Tue, 11 Aug 2026 14:00:00 +0800</lastBuildDate><atom:link href="https://jiangym.top/tags/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>用 Nginx Proxy Manager 轻松管理反向代理和 HTTPS</title><link>https://jiangym.top/post/nginx-proxy-manager-guide/</link><pubDate>Tue, 11 Aug 2026 14:00:00 +0800</pubDate><author>xxx@example.com (JiangYM)</author><guid>https://jiangym.top/post/nginx-proxy-manager-guide/</guid><description>
<![CDATA[<h1>用 Nginx Proxy Manager 轻松管理反向代理和 HTTPS</h1><p>作者：JiangYM（xxx@example.com）</p>
        
          <h2 id="什么是-nginx-proxy-manager">
<a class="header-anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af-nginx-proxy-manager"></a>
什么是 Nginx Proxy Manager？
</h2><p><strong>Nginx Proxy Manager</strong>（简称 NPM）是一个基于 Nginx 的图形化反向代理管理工具，用 Docker 一键部署，让你通过 Web 界面管理代理主机和 SSL 证书，不用再手写复杂的 Nginx 配置。</p>
<h3 id="为什么用它">
<a class="header-anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e7%94%a8%e5%ae%83"></a>
为什么用它？
</h3><ul>
<li>🖥️ <strong>图形化界面</strong>：点几下就配好反代</li>
<li>🔐 <strong>自动 HTTPS</strong>：自动申请和续期 Let&rsquo;s Encrypt 证书</li>
<li>🐳 <strong>Docker 部署</strong>：一条命令启动</li>
<li>📊 <strong>访问统计</strong>：内置流量和错误日志</li>
<li>👥 <strong>多用户</strong>：支持多用户权限管理</li>
<li>🔧 <strong>高级配置</strong>：支持自定义 Nginx 配置、Access List</li>
</ul>
<hr>
<h2 id="docker-部署">
<a class="header-anchor" href="#docker-%e9%83%a8%e7%bd%b2"></a>
Docker 部署
</h2><h3 id="docker-compose-部署">
<a class="header-anchor" href="#docker-compose-%e9%83%a8%e7%bd%b2"></a>
docker-compose 部署
</h3><p>创建 <code>docker-compose.yml</code>：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;3.8&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">services</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">app</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;jc21/nginx-proxy-manager:latest&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">restart</span><span class="p">:</span><span class="w"> </span><span class="l">unless-stopped</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">ports</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="s1">&#39;80:80&#39;</span><span class="w">     </span><span class="c"># HTTP</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="s1">&#39;443:443&#39;</span><span class="w">   </span><span class="c"># HTTPS</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="s1">&#39;81:81&#39;</span><span class="w">     </span><span class="c"># 管理面板</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">volumes</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="l">./data:/data</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="l">./letsencrypt:/etc/letsencrypt</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>启动：</p>
        
        <hr><p>本文2026-08-11首发于<a href='https://jiangym.top/'>JiangYM's Blog</a>，最后修改于2026-08-11</p>]]></description><category>运维</category></item><item><title>Docker 入门到进阶：容器化部署完全指南</title><link>https://jiangym.top/post/docker-guide/</link><pubDate>Sun, 09 Aug 2026 14:00:00 +0800</pubDate><author>xxx@example.com (JiangYM)</author><guid>https://jiangym.top/post/docker-guide/</guid><description>
<![CDATA[<h1>Docker 入门到进阶：容器化部署完全指南</h1><p>作者：JiangYM（xxx@example.com）</p>
        
          <h2 id="什么是-docker">
<a class="header-anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af-docker"></a>
什么是 Docker？
</h2><p>Docker 是一个容器化平台，可以把应用和它的依赖打包成一个轻量、可移植的容器，然后在任何 Linux 机器上运行。</p>
<h3 id="为什么用-docker">
<a class="header-anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e7%94%a8-docker"></a>
为什么用 Docker？
</h3><ul>
<li>🚀 <strong>环境一致</strong>：开发、测试、生产环境完全一样</li>
<li>📦 <strong>快速部署</strong>：一条命令启动服务</li>
<li>🔄 <strong>易于迁移</strong>：在哪都能跑，不依赖系统环境</li>
<li>🗑️ <strong>干净清爽</strong>：删掉容器就是完全卸载，不留垃圾</li>
<li>📊 <strong>隔离性好</strong>：各个服务互不影响</li>
</ul>
<h3 id="容器-vs-虚拟机">
<a class="header-anchor" href="#%e5%ae%b9%e5%99%a8-vs-%e8%99%9a%e6%8b%9f%e6%9c%ba"></a>
容器 vs 虚拟机
</h3><table>
	<thead>
			<tr>
					<th>特性</th>
					<th>容器</th>
					<th>虚拟机</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>启动速度</td>
					<td>秒级</td>
					<td>分钟级</td>
			</tr>
			<tr>
					<td>资源占用</td>
					<td>MB 级</td>
					<td>GB 级</td>
			</tr>
			<tr>
					<td>隔离性</td>
					<td>进程级隔离</td>
					<td>完全隔离</td>
			</tr>
			<tr>
					<td>数量</td>
					<td>单机可跑几百个</td>
					<td>十几个</td>
			</tr>
	</tbody>
</table>
<hr>
<h2 id="安装-docker">
<a class="header-anchor" href="#%e5%ae%89%e8%a3%85-docker"></a>
安装 Docker
</h2><h3 id="ubuntudebian">
<a class="header-anchor" href="#ubuntudebian"></a>
Ubuntu/Debian
</h3><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># 官方脚本一键安装（最简单）</span>
</span></span><span class="line"><span class="cl">curl -fsSL https://get.docker.com <span class="p">|</span> bash
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 启动并设置开机自启</span>
</span></span><span class="line"><span class="cl">sudo systemctl start docker
</span></span><span class="line"><span class="cl">sudo systemctl <span class="nb">enable</span> docker
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 将当前用户加入 docker 组（免 sudo）</span>
</span></span><span class="line"><span class="cl">sudo usermod -aG docker <span class="nv">$USER</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 重新登录后生效</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>验证安装：</p>
        
        <hr><p>本文2026-08-09首发于<a href='https://jiangym.top/'>JiangYM's Blog</a>，最后修改于2026-08-09</p>]]></description><category>运维</category></item><item><title>小服务器也能跑：5 个有意思的开源 Web 项目推荐</title><link>https://jiangym.top/post/self-hosted-projects/</link><pubDate>Thu, 06 Aug 2026 14:00:00 +0800</pubDate><author>xxx@example.com (JiangYM)</author><guid>https://jiangym.top/post/self-hosted-projects/</guid><description>
<![CDATA[<h1>小服务器也能跑：5 个有意思的开源 Web 项目推荐</h1><p>作者：JiangYM（xxx@example.com）</p>
        
          <h2 id="前言">
<a class="header-anchor" href="#%e5%89%8d%e8%a8%80"></a>
前言
</h2><p>很多人买了小服务器（1核1G/2G）不知道干什么，光挂个博客又觉得浪费。本文推荐 5 个轻量又好玩的开源项目，都是 Docker 一键部署，资源占用低，实用性强。</p>
<hr>
<h2 id="1-vaultwarden---自建密码管理器">
<a class="header-anchor" href="#1-vaultwarden---%e8%87%aa%e5%bb%ba%e5%af%86%e7%a0%81%e7%ae%a1%e7%90%86%e5%99%a8"></a>
1. Vaultwarden - 自建密码管理器
</h2><h3 id="项目信息">
<a class="header-anchor" href="#%e9%a1%b9%e7%9b%ae%e4%bf%a1%e6%81%af"></a>
项目信息
</h3><ul>
<li><strong>GitHub</strong>: <a href="https://github.com/dani-garcia/vaultwarden">dani-garcia/vaultwarden</a></li>
<li><strong>镜像大小</strong>: ~30MB</li>
<li><strong>内存占用</strong>: ~50MB</li>
<li><strong>语言</strong>: Rust</li>
</ul>
<h3 id="为什么推荐">
<a class="header-anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e6%8e%a8%e8%8d%90"></a>
为什么推荐
</h3><p>Bitwarden 是目前最好的开源密码管理器之一，但官方服务器版有点重。Vaultwarden 是用 Rust 重写的兼容版本，轻量得多，功能基本一样。</p>
<ul>
<li>全平台同步（手机/电脑/浏览器插件）</li>
<li>支持二步验证</li>
<li>支持密码共享</li>
<li>端到端加密</li>
</ul>
<h3 id="部署">
<a class="header-anchor" href="#%e9%83%a8%e7%bd%b2"></a>
部署
</h3><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -d <span class="se">\
</span></span></span><span class="line"><span class="cl">  --name vaultwarden <span class="se">\
</span></span></span><span class="line"><span class="cl">  -p 8080:80 <span class="se">\
</span></span></span><span class="line"><span class="cl">  -v ./vaultwarden:/data <span class="se">\
</span></span></span><span class="line"><span class="cl">  -e <span class="nv">SIGNUPS_ALLOWED</span><span class="o">=</span><span class="nb">false</span> <span class="se">\
</span></span></span><span class="line"><span class="cl">  vaultwarden/server:latest
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p>先注册自己的账号，然后把 <code>SIGNUPS_ALLOWED</code> 设成 false 关掉注册，只自己用。</p>
</blockquote>
<hr>
<h2 id="2-miniflux---极简-rss-阅读器">
<a class="header-anchor" href="#2-miniflux---%e6%9e%81%e7%ae%80-rss-%e9%98%85%e8%af%bb%e5%99%a8"></a>
2. Miniflux - 极简 RSS 阅读器
</h2><h3 id="项目信息-1">
<a class="header-anchor" href="#%e9%a1%b9%e7%9b%ae%e4%bf%a1%e6%81%af-1"></a>
项目信息
</h3><ul>
<li><strong>GitHub</strong>: <a href="https://github.com/miniflux/v2">miniflux/v2</a></li>
<li><strong>镜像大小</strong>: ~20MB</li>
<li><strong>内存占用</strong>: ~30MB</li>
<li><strong>语言</strong>: Go</li>
</ul>
<h3 id="为什么推荐-1">
<a class="header-anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e6%8e%a8%e8%8d%90-1"></a>
为什么推荐
</h3><p>信息爆炸时代，RSS 是最高效的阅读方式。Miniflux 是一个极简的 RSS 阅读器，功能不花哨但足够用。</p>
        
        <hr><p>本文2026-08-06首发于<a href='https://jiangym.top/'>JiangYM's Blog</a>，最后修改于2026-08-06</p>]]></description><category>资源</category></item></channel></rss>