<?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://honestradar.com/tags/docker/</link><description>Recent content in Docker on 诚实雷达</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Wed, 27 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://honestradar.com/tags/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>一台廉价VPS跑多个网站：Docker + Nginx Proxy Manager 完整教程（2026）</title><link>https://honestradar.com/vps-hosting/docker-vps-multiple-sites-2026/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://honestradar.com/vps-hosting/docker-vps-multiple-sites-2026/</guid><description>&lt;img src="https://honestradar.com/images/docker-vps-multiple-sites-2026.jpg" alt="Featured image of post 一台廉价VPS跑多个网站：Docker + Nginx Proxy Manager 完整教程（2026）" /&gt;&lt;p&gt;买了台 VPS，只跑一个博客太浪费了。能不能同一台机器跑 3 个 WordPress、1 个静态站、再加个个人网盘？&lt;/p&gt;
&lt;p&gt;能。用 Docker + Nginx Proxy Manager，一台 &lt;a href="https://my.racknerd.com/aff.php?aff=19978" rel="nofollow sponsored" target="_blank"&gt;$18.29/年的 RackNerd VPS&lt;/a&gt; 能轻松带起 5+ 个网站，而且互不干扰，坏一个站点不影响其他。&lt;/p&gt;
&lt;p&gt;本文手把手教你从零搭建（不需要懂 Docker）。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="为什么用-docker"&gt;为什么用 Docker？
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;传统方式（裸机装）&lt;/th&gt;
 &lt;th&gt;Docker 方式&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;多个网站共用一套 PHP/MySQL → 版本冲突&lt;/td&gt;
 &lt;td&gt;每个站独立容器，互不影响&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;装 Nginx 配置虚拟主机 → 容易配错&lt;/td&gt;
 &lt;td&gt;Nginx Proxy Manager 图形化管理&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;迁移服务器 → 重新部署所有环境&lt;/td&gt;
 &lt;td&gt;导出容器 → 在新机一键恢复&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;某站被黑 → 可能影响整台机器&lt;/td&gt;
 &lt;td&gt;容器隔离，一个站被黑不影响其他&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;简单说：&lt;strong&gt;Docker 让你的 VPS 变成一台&amp;quot;迷你服务器集群&amp;quot;，每个网站独立运行，管理比裸机简单十倍。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="准备清单"&gt;准备清单
&lt;/h2&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;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;VPS&lt;/td&gt;
 &lt;td&gt;2GB 内存以上&lt;/td&gt;
 &lt;td&gt;$18.29/年起&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;系统&lt;/td&gt;
 &lt;td&gt;Ubuntu 22.04 或 Debian 12&lt;/td&gt;
 &lt;td&gt;免费&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;域名&lt;/td&gt;
 &lt;td&gt;支持泛解析（*.yourdomain.com）&lt;/td&gt;
 &lt;td&gt;~$10/年&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;时间&lt;/td&gt;
 &lt;td&gt;45 分钟&lt;/td&gt;
 &lt;td&gt;免费&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;还没有 VPS？&lt;/strong&gt; 推荐 &lt;a href="https://my.racknerd.com/aff.php?aff=19978" rel="nofollow sponsored" target="_blank"&gt;RackNerd 2GB 款 $18.29/年&lt;/a&gt;，性价比最高。要更好的性能选 &lt;a href="https://www.hostinger.com?REFERRALCODE=JZ1ZL8465QCG" rel="nofollow sponsored" target="_blank"&gt;Hostinger KVM 2（8GB/100GB NVMe）$8.99/月&lt;/a&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="第一步安装-docker-和-docker-compose"&gt;第一步：安装 Docker 和 Docker Compose
&lt;/h2&gt;&lt;p&gt;SSH 连上 VPS 后，执行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 一键安装 Docker&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -fsSL https://get.docker.com | bash
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 安装 Docker Compose&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt update &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt install -y docker-compose-plugin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 验证安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker --version
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;看到版本号就说明装好了。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="第二步安装-portainerdocker-可视化管理面板"&gt;第二步：安装 Portainer（Docker 可视化管理面板）
&lt;/h2&gt;&lt;p&gt;虽然命令行也能管理 Docker，但对新手来说 Portainer 的网页界面友好得多：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker volume create portainer_data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker run -d &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --name portainer &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --restart&lt;span style="color:#f92672"&gt;=&lt;/span&gt;always &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -p 9443:9443 &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -p 8000:8000 &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -v /var/run/docker.sock:/var/run/docker.sock &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -v portainer_data:/data &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; portainer/portainer-ce:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;安装完成后，浏览器打开 &lt;code&gt;https://你的IP:9443&lt;/code&gt;，创建管理员账号。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="第三步安装-nginx-proxy-manager反向代理神器"&gt;第三步：安装 Nginx Proxy Manager（反向代理神器）
&lt;/h2&gt;&lt;p&gt;这是整个方案的核心。Nginx Proxy Manager（简称 NPM）是一个带网页界面的 Nginx 反向代理工具，能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自动申请和续期 SSL 证书（Let&amp;rsquo;s Encrypt）&lt;/li&gt;
&lt;li&gt;图形化管理域名和端口映射&lt;/li&gt;
&lt;li&gt;支持 WebSocket、HTTP/2&lt;/li&gt;
&lt;li&gt;一键 301 重定向、访问控制&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="31-创建-docker-composeyml"&gt;3.1 创建 docker-compose.yml
&lt;/h3&gt;&lt;p&gt;在 VPS 上创建一个目录：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p ~/docker/npm &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; cd ~/docker/npm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;用任意编辑器创建 &lt;code&gt;docker-compose.yml&lt;/code&gt;（宝塔面板里可以用文件管理器，或者在终端用 nano/vim）:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;version&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#39;3.8&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;npm&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#39;jc21/nginx-proxy-manager:latest&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;restart&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;unless-stopped&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#39;80:80&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#39;443:443&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#39;81:81&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;./data:/data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;./letsencrypt:/etc/letsencrypt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="32-启动-npm"&gt;3.2 启动 NPM
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;启动后访问 &lt;code&gt;http://你的IP:81&lt;/code&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;默认邮箱：&lt;code&gt;admin@example.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;默认密码：&lt;code&gt;changeme&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;登录后立即修改密码。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="第四步部署第一个-wordpress-站点"&gt;第四步：部署第一个 WordPress 站点
&lt;/h2&gt;&lt;p&gt;我们用 Docker 跑一个 WordPress 容器，然后通过 NPM 把域名指向它。&lt;/p&gt;
&lt;h3 id="41-创建-wordpress-的-docker-compose"&gt;4.1 创建 WordPress 的 docker-compose
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p ~/docker/site1 &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; cd ~/docker/site1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;创建 &lt;code&gt;docker-compose.yml&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;version&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#39;3.8&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;wordpress&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;wordpress:latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;restart&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;always&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#34;8081:80&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;environment&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;WORDPRESS_DB_HOST&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;db&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;WORDPRESS_DB_USER&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;wpuser&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;WORDPRESS_DB_PASSWORD&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;wppass123&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;WORDPRESS_DB_NAME&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;wordpress&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;./wp-content:/var/www/html/wp-content&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;db&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;mysql:8.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;restart&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;always&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;environment&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;MYSQL_DATABASE&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;wordpress&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;MYSQL_USER&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;wpuser&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;MYSQL_PASSWORD&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;wppass123&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;MYSQL_ROOT_PASSWORD&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;rootpass456&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;./db:/var/lib/mysql&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;启动：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;现在 WordPress 跑在 &lt;code&gt;http://你的IP:8081&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id="42-用-npm-绑定域名--ssl"&gt;4.2 用 NPM 绑定域名 + SSL
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;先把域名 DNS 解析到 VPS 的 IP（A 记录）&lt;/li&gt;
&lt;li&gt;打开 NPM 面板（&lt;code&gt;http://IP:81&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;点 &lt;strong&gt;Proxy Hosts&lt;/strong&gt; → &lt;strong&gt;Add Proxy Host&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;填写：&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&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;Domain Names&lt;/td&gt;
 &lt;td&gt;yoursite.com&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Forward Hostname/IP&lt;/td&gt;
 &lt;td&gt;你的VPS内网IP（通常是docker网关172.x.x.x，或用&lt;code&gt;172.17.0.1&lt;/code&gt;）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Forward Port&lt;/td&gt;
 &lt;td&gt;8081&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SSL&lt;/td&gt;
 &lt;td&gt;选 &amp;ldquo;Request a new SSL Certificate&amp;rdquo;，勾选 Force SSL&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;ol start="5"&gt;
&lt;li&gt;点 Save&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;等 30 秒，访问 &lt;code&gt;https://yoursite.com&lt;/code&gt;，WordPress 就出来了，而且自带 SSL 绿锁！&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="第五步添加第二个第三个网站"&gt;第五步：添加第二个、第三个网站
&lt;/h2&gt;&lt;p&gt;要加新站，只需要：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;创建新的 docker-compose 目录（如 &lt;code&gt;~/docker/site2&lt;/code&gt;），改一下端口（如 8082）&lt;/li&gt;
&lt;li&gt;启动 Docker 容器&lt;/li&gt;
&lt;li&gt;在 NPM 里加一条 Proxy Host 规则&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;每个站之间完全独立&lt;/strong&gt;——WordPress 版本可以不一样，PHP 版本可以不一样，甚至可以用完全不同的程序（Nextcloud、Matomo、Ghost 博客等），互不干扰。&lt;/p&gt;
&lt;h3 id="常用-docker-镜像推荐"&gt;常用 Docker 镜像推荐
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;用途&lt;/th&gt;
 &lt;th&gt;Docker 镜像&lt;/th&gt;
 &lt;th&gt;推荐端口&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;WordPress&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;wordpress:latest&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;8081, 8082&amp;hellip;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;静态站&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;nginx:alpine&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;8091, 8092&amp;hellip;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;文件管理&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;filebrowser/filebrowser&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;8080&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;数据库管理&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;phpmyadmin:latest&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;8085&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;个人网盘&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;nextcloud:latest&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;8090&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;统计&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;matomo:latest&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;8088&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="第六步日常维护"&gt;第六步：日常维护
&lt;/h2&gt;&lt;h3 id="查看所有运行中的容器"&gt;查看所有运行中的容器
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="更新容器"&gt;更新容器
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd ~/docker/site1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose pull &lt;span style="color:#75715e"&gt;# 拉取最新镜像&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose up -d &lt;span style="color:#75715e"&gt;# 重新创建容器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="备份"&gt;备份
&lt;/h3&gt;&lt;p&gt;Docker 的数据都存在 &lt;code&gt;~/docker/&lt;/code&gt; 目录下，直接打包这个目录就是完整备份：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar -czf backup-&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;date +%Y%m%d&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;.tar.gz ~/docker/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;配合上一篇的 &lt;a href="https://honestradar.com/vps-hosting/vps-auto-backup-tutorial-2026/"&gt;VPS 自动备份教程&lt;/a&gt;，设置每天自动备份到另一台 VPS。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="性能实测"&gt;性能实测
&lt;/h2&gt;&lt;p&gt;我在一台 &lt;a href="https://my.racknerd.com/aff.php?aff=19978" rel="nofollow sponsored" target="_blank"&gt;RackNerd 2GB 款&lt;/a&gt; 上同时跑了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3 个 WordPress 站点（日访问量合计 ~500 IP）&lt;/li&gt;
&lt;li&gt;1 个 Nginx Proxy Manager&lt;/li&gt;
&lt;li&gt;1 个 Portainer&lt;/li&gt;
&lt;li&gt;1 个 FileBrowser&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;内存使用约 1.4GB/2GB，CPU 空闲 70%+，完全够用。如果你需要跑更多站点，建议上 4GB 内存。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="常见问题"&gt;常见问题
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Q: Docker 容器和宝塔面板有什么区别？&lt;/strong&gt;
A: 宝塔面板是一个&amp;quot;系统级&amp;quot;管理工具，在裸机上装 Nginx/MySQL/PHP。Docker 是&amp;quot;应用级&amp;quot;隔离，每个网站独立运行。两者可以共存，但如果追求隔离和可迁移性，Docker 更好。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q: 1GB 内存能跑几个 Docker 网站？&lt;/strong&gt;
A: 1-2 个轻量 WordPress。Docker 本身不占太多额外内存，但 MySQL 容器每个约 300-500MB。建议 2GB 起。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q: Nginx Proxy Manager 和宝塔的 Nginx 能同时用吗？&lt;/strong&gt;
A: 不建议。它们都占用 80/443 端口，会冲突。要么全用 Docker 方案，要么全用宝塔方案。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q: 容器之间怎么通信？&lt;/strong&gt;
A: 默认在同一台宿主机上，通过 Docker 网络通信。NPM 通过 &lt;code&gt;172.17.0.1:端口号&lt;/code&gt; 转发请求到各个容器。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Disclaimer: Some links are affiliate links. We may earn a commission at no extra cost to you.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>