首页
关于
login
Search
1
腾讯收购Manus背后:AI Agent私有化部署需要什么样的服务器?
7 阅读
2
VPS上创建网站的完整教程:从零开始搭建你的网站
6 阅读
3
长鑫科技IPO估值4万亿:国产存储要起飞,云服务器价格会暴跌吗?
6 阅读
4
test
6 阅读
5
你的VPS真的安全吗?我从被"黑"到全面加固的血泪史
4 阅读
服务器
VPS教程
服务器教程
云服务器
AI技术
评测
服务器导购
VPS资讯
云服务器知识
AI服务器
服务器推荐
游戏服务器
科技
AI编程
服务器安全
AI算力
VPS
VPS导购
行业分析
存储技术
云服务器推荐
服务器选购
AI
登录
Search
标签搜索
云服务器
VPS
VPS选购
VPS推荐
AI算力
GPU云服务器
服务器推荐
服务器选购
数据中心
云服务器推荐
建站教程
阿里云
AI服务器
腾讯云
服务器安全
DeepSeek
AI推理
国产芯片
AI Agent
AI数据中心
Typecho
累计撰写
169
篇文章
累计收到
0
条评论
首页
栏目
服务器
VPS教程
服务器教程
云服务器
AI技术
评测
服务器导购
VPS资讯
云服务器知识
AI服务器
服务器推荐
游戏服务器
科技
AI编程
服务器安全
AI算力
VPS
VPS导购
行业分析
存储技术
云服务器推荐
服务器选购
AI
页面
关于
login
搜索到
3
篇与
的结果
2026-07-17
从Docker 29.6.2安全漏洞看容器化服务器的正确选型姿势
今天技术圈有个事值得说道说道—— Docker 发布了 29.6.2 版本,一口气修复了好几个安全漏洞,其中最值得关注的是 CVE-2026-15793,一个从捆绑文件检出 Git 源代码导致命令注入的高危漏洞。老实说,这已经不是 Docker 第一次因为安全问题让人捏把汗了。但每次漏洞出来,我看到的第一反应不是"赶紧升级",而是问自己一个问题:如果服务器/ VPS 的底层架构从一开始就没选对,你升级 Docker 版本有用吗?这篇文章我不打算只讲漏洞本身,我想跟你聊聊——在容器化已经成了标配的今天,一台适合跑 Docker 的云服务器 / VPS 到底该怎么选。选错了,你连补漏洞的资格都没有。目录 这次 Docker 安全漏洞到底说了什么 漏洞背后的三个选型教训 容器化场景下云服务器 / VPS 选型的五个关键维度 不同场景的推荐配置 总结 一、这次 Docker 安全漏洞到底说了什么根据官方公告,Docker Engine 29.6.2 主要修复了以下安全问题: CVE-2026-15793:从捆绑文件检出 Git 源代码时存在命令注入,攻击者可以通过构造特殊的 Git 仓库,在宿主机上执行任意命令 其他多个安全修复,涉及容器逃逸和权限提升 你看,这个漏洞的厉害之处在于——它跳过了容器隔离。本来你觉得"在容器里面折腾,最多影响容器本身",但因为这个漏洞涉及到 Git 操作和宿主机的交互,攻击者可以直接拿到宿主机的权限。试想一下:你的业务跑在云服务器上,用 Docker 跑着几个容器,一切看起来风平浪静。结果有人通过一个精心构造的镜像或者 Git 仓库,直接拿下了你的宿主机。你信不信,国内有大量的小团队和创业公司,Docker 跑在裸机上一台 2C4G 的 VPS 上,没有任何额外的安全加固。这不是危言耸听。我自己帮朋友排查过好几次服务器被入侵的案例,99% 的情况不是因为 Docker 的漏洞有多高端,而是服务器本身的配置和选型一开始就有问题。二、漏洞背后的三个选型教训教训一:用"跑 Django"的思路去跑 Docker很多刚入门的朋友选服务器的时候会问:"我的业务不大,一个 2C4G 的 VPS 跑 Docker 够不够?"我的回答是:够是够,但你想过安全问题吗?Docker 不是普通的应用进程。它需要和 Linux 内核的命名空间(namespace)、控制组(cgroup)、 capabilities、seccomp、SELinux/AppArmor 打交道。如果你的 VPS 内核版本太低、或者某些安全模块被精简掉了,Docker 的隔离性就会大打折扣。你看,便宜的 VPS 为了省钱,用的都是魔改内核或者极度精简的发行版。这些系统跑个 WordPress 没问题,但跑 Docker——你就等于把所有鸡蛋放在一个薄壳里。教训二:忽视镜像来源和安全审计CVE-2026-15793 涉及一个非常具体的攻击面:恶意 Git 仓库和容器镜像。国内很多团队有个习惯——"Docker Hub 拉不下来?换个镜像加速器"。然后大量使用第三方编译的、不明来源的镜像。这些镜像里面有没有后门?有没有被篡改?很少有人去逐层检查。相比之下,国外的团队普遍会强制使用镜像签名验证(Docker Content Trust),确保每个镜像都经过签名校验。这不是技术差距,是安全意识差距。教训三:无防护的默认配置默认安装的 Docker,没有任何认证和访问控制。Docker daemon 监听的 Unix socket,只要你有权限,谁都能调用。很多人在云服务器上装完 Docker 就完事了,防火墙规则也不配置,直接暴露 2375 端口。这就像你家大门敞开着,在门口贴了个"请勿入内"——你觉得有用吗?三、容器化场景下云服务器 / VPS 选型的五个关键维度讲完了教训,我们来点实际的。做服务器导购的这几年,我总结了一个选型框架,五个维度:1. 内核版本与 Docker 兼容性这是最重要的维度,没有之一。Docker 依赖 Linux 内核的多个特性: 内核特性 用途 最低要求 namespace 容器隔离 内核 3.8+ cgroup v2 资源限制 内核 5.2+(推荐) overlay2 存储驱动 内核 4.0+ seccomp 系统调用过滤 内核 3.12+ cgroup namespaces 增强隔离 内核 4.6+ 我的建议:选择 Ubuntu 22.04+/Debian 12+ 或 CentOS Stream 9/Rocky Linux 9,内核版本至少在 5.10 以上。不要用 OpenVZ 架构的 VPS 跑 Docker,OpenVZ 共享内核,很多特性不支持,容器隔离形同虚设。2. CPU 架构与指令集现在正是 ARM 架构逆袭 的关键时期。AWS Graviton、华为鲲鹏、Ampere 这些 ARM 服务器芯片的性能已经非常能打了,而且价格比同配置的 x86 便宜 20%-30%。但是——Docker 镜像的生态还是以 x86 为主。如果你选择 ARM 服务器,很多第三方镜像可能需要自己重新编译。对于生产环境,我建议: - 新手/小项目:选 x86(Intel/AMD),省心 - 有经验/批量部署:可以混搭 ARM,省成本3. 存储性能(IOPS)Docker 对存储的消耗比想象中大得多。容器层、镜像层、数据卷,每个都在读写磁盘。我见过最惨的案例:一个朋友用最低配的云服务器跑 Docker,结果拉取一个几个 GB 的镜像花了半小时,启动容器慢得怀疑人生。一看,普通的 HDD 云硬盘,IOPS 不到 200。选型建议: - 至少选择 SSD 云硬盘,IOPS 不低于 2000 - 如果跑数据库类容器,推荐 NVMe 实例 + 本地盘,IOPS 5000+ - 数据卷单独挂载,不要和系统盘混用4. 网络带宽与安全组Docker 容器的网络模式(bridge/host/overlay)对网络性能影响很大。但很多人忽略了一个更基础的问题:云服务器的安全组配置。 不要将 Docker 宿主机直接暴露在公网 严格限制 2375/2376(Docker API)端口的访问来源 SSH 端口改成非标准端口,并启用密钥登录 使用云服务商的安全组做第一层防护,不要只靠 iptables 5. 备份与快照能力容器是无状态的,但你的数据不是。CVE-2026-15793 这种漏洞永远不是最后一个。你必须有在几分钟内回滚的能力。所以选云服务器的时候,要看服务商是否提供: - 自动快照(至少每日一次) - 跨区域备份(防数据中心的单点故障) - 镜像回滚(升级 Docker 版本前一定要打快照)四、不同场景的推荐配置根据我经手的客户案例,整理了三个典型配置,供你参考:个人开发者/小网站 配置:2C4G + 40GB SSD + 5Mbps 带宽 系统:Debian 12(内核 6.1) 月费参考:30-60 元(国内主流云服务商) 推荐:华为云 HECS、腾讯云轻量云、阿里云 ECS 突发型 中小团队/创业项目 配置:4C8G + 80GB SSD + 10Mbps 带宽 系统:Ubuntu 24.04(内核 6.8) 月费参考:150-300 元 推荐:阿里云通用型 g7、腾讯云标准型 S5、AWS t3.medium 生产环境/高可用部署 配置:8C16G + 200GB NVMe + 弹性公网 IP + 多节点集群 系统:Rocky Linux 9 或 Ubuntu 24.04 LTS 月费参考:800-2000 元/节点(至少 3 节点起步) 推荐:AWS ECS/EKS、华为云 CCE、腾讯云 TKE + CVM 标准型 五、总结写这篇文章,不是为了吓唬谁。老实说,Docker 的安全性整体上是靠谱的——只要你的底层服务器选对了,配置合理了,大多数漏洞其实跟你没什么关系。但问题就出在"选对"这两个字上。国内大量的开发者买 VPS/云服务器的时候,只看价格不看配置,只看核心数不看内核版本,只看带宽不看安全组。这种选型思路,在容器化时代是非常危险的。CVE-2026-15793 也好,之前的 runC 漏洞也罢——它们都在传递同一个信号:容器安全的最后一道防线,不在 Docker 本身,而在于你选择的服务器有多靠谱。希望这篇文章对你选服务器有帮助。毕竟做技术的,安全和成本永远是一个trade-off——但有些钱,真不能省。(全文完)
2026年07月17日
4 阅读
0 评论
0 点赞
2026-07-03
VPS上跑Docker是什么体验?2026年容器化部署实战指南
这两天后台收到好几条类似的留言:"刚买了台香港VPS,装了个宝塔面板,不知道该装什么环境。听说Docker很火,但我连Docker是什么都不知道,能干嘛?"老实说,这种问题不是个例。我接触过的VPS用户里,十个人有八个买了服务器只会挂个网站或者跑个代理,剩下两个连SSH怎么登录都不知道。但你有没有想过——为什么同样配置的VPS,有的人能跑三五个网站外加一套CI/CD流水线,而你装一个LNMP就卡得不行?答案很可能就两个字:Docker。这篇文章我准备花点时间,把Docker在VPS上到底能干什么、怎么干、值不值得学,一次性给你说明白。不整虚的,全部是实操过的真经验。 轻量级容器技术,正在改变我们管理服务器的方式目录 到底什么是Docker?用大白话给你讲清楚 Docker为什么适合VPS?三个无法拒绝的理由 上手实操:10分钟让你的VPS跑起Docker 实战场景一:一行命令部署一个网站 实战场景二:在VPS上跑AI模型(Docker版) 实战场景三:自建开发环境,告别污染系统 Docker Compose:一键部署整套服务 避坑指南:VPS上用Docker的五大注意点 总结:你的VPS值得一个Docker 到底什么是Docker?用大白话给你讲清楚先回答一个灵魂拷问:Docker到底是什么?我给你打一个比方。你去租房子。传统的方式是:你租了一间毛坯房(VPS),然后自己买水泥沙子铺地板、刷墙、装水管、拉电线——这就是在VPS上手动装Nginx、装MySQL、装PHP、配环境。累不累?一套流程下来几个小时没了。Docker的方式是:你租的房子是精装修的,家电家具全部配好,拎包入住。 每一个"房间"都是一个Docker容器,互不干扰。你只需要把"集装箱"往VPS上一放,就跑起来了。技术一点说:Docker是一个容器化引擎,让你能在一台VPS上运行多个互相隔离的应用实例,每个实例自包含环境依赖,不会互相污染。你看,就这么简单。Docker为什么适合VPS?三个无法拒绝的理由理由一:环境隔离,告别"装A坏B"我踩过最大的坑是什么你知道吗?在VPS上装了一个Python 3.12的项目,结果把系统自带的Python 3.6搞崩了。然后yum不能用了,apt-get报错了,最后只能重装系统。用Docker就不会有这个问题。 每个容器有自己的文件系统、自己的依赖、自己的运行环境。你可以在一个容器里跑Python 3.12,另一个容器里跑Python 2.7,互不打架。这不香吗?理由二:部署速度,从"小时级"变成"秒级"传统装一个WordPress: 1. 装Nginx → 30分钟 2. 装MySQL → 20分钟 3. 装PHP → 15分钟 4. 配置WP → 10分钟 5. 再配SSL → 又是30分钟加起来一个半小时。用Docker呢?一条命令:docker run -d -p 8080:80 wordpress 10秒。 你没看错,10秒钟WordPress就跑起来了。理由三:资源利用率高,低配VPS也能跑这是最实在的。一台1核1G的小鸡(VPS的圈内俗称),你要是在上面装一套完整的LAMP环境,光系统本身就能吃你一半内存。但用Docker,同一个应用占用的资源更少,因为容器共享宿主机的操作系统内核,不像虚拟机那样每个都装一套完整的OS。同样1G内存,传统方式跑一个应用都吃力;Docker方式,跑三四个应用绰绰有余。 Docker容器共享宿主机内核,比传统虚拟机更轻量上手实操:10分钟让你的VPS跑起Docker废话不多说,直接上手。第一步:SSH登录你的VPS 第二步:执行安装命令Ubuntu/Debian系统:# 更新包管理 sudo apt update && sudo apt upgrade -y # 安装Docker curl -fsSL https://get.docker.com | sudo sh # 将当前用户加入docker组(免sudo执行docker命令) sudo usermod -aG docker $USER # 重新登录或执行 newgrp docker 使生效 newgrp docker # 验证安装 docker --version CentOS/RHEL系统:sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker sudo usermod -aG docker $USER 安装完跑一下这个命令,看到输出就说明搞定了:docker run hello-world 全程不超10分钟,而且全自动化,不需要你懂什么底层原理。实战场景一:一行命令部署一个网站假设你想在VPS上部署一个静态博客或者个人网站。传统做法:装Nginx、写配置文件、传文件、配权限,搞到怀疑人生。Docker做法:docker run -d \ --name my-blog \ -p 80:80 \ -v /path/to/your/blog:/usr/share/nginx/html:ro \ nginx:alpine 就这一条命令,你的网站就跑起来了。参数解释一下: -d:后台运行 --name my-blog:给容器起个名字 -p 80:80:把宿主机的80端口映射到容器的80端口 -v ...:把宿主机的网站目录挂载到容器里 nginx:alpine:基于Alpine Linux的极简Nginx镜像(才20多MB) 你的网站文件放在宿主机上,Nginx在容器里跑,互不干扰。 升级Nginx?直接删掉旧容器建个新的,挂载同一个目录——网站数据完好无损。实战场景二:在VPS上跑AI模型(Docker版)这个场景我必须要说,因为在AI大模型火起来的这两年,用Docker跑AI模型已经成为标配。之前我那篇讲VPS部署AI大模型的文章里说过了,但你用Docker部署会更简单:docker run -d \ --name ollama \ -p 11434:11434 \ -v ollama_data:/root/.ollama \ --gpus all \ ollama/ollama 这条命令拉起Ollama服务后,直接在VPS上跑各种开源大模型:# 拉取并运行Qwen2.5(通义千问) docker exec ollama ollama pull qwen2.5:7b docker exec ollama ollama run qwen2.5:7b 就这么简单。不需要自己装Python、CUDA、PyTorch——Docker镜像已经把环境全部打包好了。而且你完全可以在同一台VPS上同时跑一个AI模型、一个网站、一个数据库,互不冲突。你试试不用Docker做同样的事,看看装环境装到第几步会崩溃。实战场景三:自建开发环境,告别污染系统我自己最常用的场景是这个。我需要在VPS上跑一个Node.js的API服务、一个Python的数据处理任务、还有一个Go写的小工具。传统方式?我得在系统上同时装Node.js、Python、Go三个运行时,还得配版本管理,一个不小心就是冲突。Docker方式?每个项目一个容器,环境完全独立。# Node.js 服务 docker run -d --name node-api -p 3000:3000 node:20-alpine npm start # Python 数据处理 docker run -d --name python-worker python:3.12-slim python worker.py # Go 工具 docker run -d --name go-tool golang:1.22 go run server.go 一台1核2G的VPS,跑三个语言的项目,毫无压力。而且当你想升级某个运行时环境的时候——比如Node从20升到22——直接把旧容器删了,拉一个新版本的镜像重新跑一遍。对系统没有半点影响。Docker Compose:一键部署整套服务这才是Docker真正厉害的地方。上面我们讲的都是单个容器。真实场景下,你一个网站可能需要:Nginx + MySQL + PHP + Redis + Certbot,五个东西协同工作。手动一个个启动太累了。Docker Compose就是干这个的。写一个 docker-compose.yml:version: '3.8' services: nginx: image: nginx:alpine ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - ./www:/var/www/html - ./ssl:/etc/nginx/ssl depends_on: - php php: image: php:8.2-fpm volumes: - ./www:/var/www/html mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: your_password MYSQL_DATABASE: myblog volumes: - mysql_data:/var/lib/mysql redis: image: redis:7-alpine volumes: mysql_data: 然后执行:docker compose up -d 一条命令,整整4个服务全部启动。 你猜如果用传统方式手动配,得花多久?避坑指南:VPS上用Docker的五大注意点第一,VPS配置不要太小。 1核512MB的机器跑Docker很吃力,建议最低1核1G起步。Docker本身只占几十MB内存,但你跑的应用加起来需要空间。第二,注意磁盘空间。 Docker镜像会占用磁盘,docker system prune 定期清理没用的镜像和缓存。不然你会发现VPS莫名其妙的满了。# 每月来一次 docker system prune -af --volumes 第三,端口不要乱映射。 把数据库端口(3306、5432)直接暴露到公网是大忌。只在容器内部网络使用,或者用 127.0.0.1:3306:3306 只绑定本机。第四,数据要持久化。 容器删了就什么都没了。数据库、配置文件、上传的文件,一定要用 -v 或 --volumes 挂载到宿主机。第五,不要用 root 跑容器。 这是安全老生常谈,但我见过太多人图省事直接 root 跑,然后被提权拿走了整台机器。用 --user 参数指定普通用户。总结:你的VPS值得一个Docker说了这么多,总结下来其实就一句话:Docker就是给VPS装了一个"集装箱管理系统",让你的服务器管理从"搬砖"变成"搭积木"。以前装一个环境折腾半天,现在一条命令搞定。以前升级软件心惊胆战怕崩,现在删旧容器换新的完事。以前看到"环境冲突"就想重装系统,现在换个容器分分钟解决。这台VPS是你花钱买的,Docker是免费的。让你的VPS物尽其用,把同样一台机器的价值发挥到最大,这不是省钱,这是聪明。如果你刚买了VPS还不知道装什么,先去装个Docker试试——你会发现,原来一台廉价VPS能做这么多事。供你参考。(全文完)
2026年07月03日
0 阅读
0 评论
0 点赞
2026-06-29
VPS Docker 部署实战:2026年,你的服务器不该只装一个LNMP
老实说,写这篇文章的动机,来自于最近在好几个技术社群里看到的同一幕——新手买了个VPS,装好宝塔跑了个WordPress,然后就不知道还能干什么了。你看,这其实挺可惜的。一台VPS,尤其是现在2026年,2核2G的KVM VPS已经卷到一个月十几二十块钱(RackNerd、CloudCone这些厂商打得火热)。但大部分人买回来,就只装个LNMP跑一个博客,CPU常年跑在3%以下,内存还剩一大半——这不就是拿着跑车去买菜吗?正好,最近CSDN、掘金上Docker相关的内容火得一塌糊涂。前两天我看CSDN热榜,排名第一的就是Docker部署相关的文章。这让我觉得,是时候聊一聊怎么用Docker把你的VPS真正用起来这个话题了。目录 为什么2026年你必须在VPS上用Docker? 第一步:VPS上安装Docker的正确姿势 第二步:用Docker Compose编排你的第一个应用 第三步:让服务跑起来——端口映射、数据持久化、自动重启 第四步:用NPM(Nginx Proxy Manager)统一管理域名和SSL 一步到位:一个Docker Compose模板管所有 常见坑和应对方案 总结 为什么2026年你必须在VPS上用Docker?先说说我自己的经历。2022年那会儿,我还是个"裸机党"。买一台VPS,apt install nginx,apt install mysql,apt install php——一把梭把环境装好。看起来挺爽对吧?问题在后面。有一次我要部署第二个网站,需要PHP 8.0,但第一个网站用的PHP 7.4。你怎么办?两个PHP版本共存?我当时查了一下午资料,最后搞了个极其丑陋的多端口方案。后来又遇到MySQL 5.7和MySQL 8.0同时需要的情况——那次我差点把服务器重装了。Docker解决的就是这个问题。每一个应用都带着它的完整运行环境,互不干扰。你要PHP 7.4?docker pull。你要PHP 8.2?docker pull。它们可以在同一台VPS上和平共处,就像两套独立的房子,共享水电但互不打扰。试想一下,如果你是一个"一人公司"的独立开发者(这个词最近在掘金上特别火),你的VPS上可能要同时跑: 一个个人博客(Nginx + PHP + MySQL) 一个API服务(Node.js + Redis) 一个AI模型代理(Python + FastAPI) 一个监控面板(Grafana + Prometheus) 没有Docker,光环境冲突就能让你崩溃。有了Docker,这些就是一个docker-compose.yml文件的事。第一步:VPS上安装Docker的正确姿势不管你买的是哪家的VPS——RackNerd、搬瓦工、CloudCone还是国内厂商——安装Docker的过程基本一样。SSH登录你的VPS,然后执行:curl -fsSL https://get.docker.com | bash 就这么一行。不要自己配源,不要自己apt install docker.io。 官方脚本会自动检测你的系统版本,配置好正确的仓库源。装完之后,把当前用户加入docker组,省得每次都要sudo:sudo usermod -aG docker $USER # 退出SSH重新登录生效 验证一下:docker --version docker compose version 如果看到版本号,恭喜你,你的VPS已经具备了现代应用部署的能力。供你参考: 如果你在国内VPS上遇到拉取镜像慢的问题,可以配置阿里云或中科大的镜像加速器。在 /etc/docker/daemon.json 中写入:{ "registry-mirrors": ["https://docker.m.daocloud.io"] } 然后 systemctl restart docker 搞定。第二步:用Docker Compose编排你的第一个应用单用 docker run 不是不行,但相信我,用过Docker Compose你就回不去了。创建一个项目目录:mkdir -p ~/myapp && cd ~/myapp 创建一个 docker-compose.yml:version: '3.8' services: web: image: nginx:alpine ports: - "8080:80" volumes: - ./html:/usr/share/nginx/html restart: always db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: my_secret_pwd MYSQL_DATABASE: myapp volumes: - db_data:/var/lib/mysql restart: always volumes: db_data: 然后在当前目录下创建一个 html/index.html,写点内容:<h1>Hello from Docker on VPS!</h1> 启动:docker compose up -d 打开浏览器访问 http://你的VPSIP:8080——看到页面了没?整个过程不到5分钟。 如果不用Docker,光装Nginx和MySQL你就要折腾至少半小时,还得处理各种版本兼容问题。第三步:让服务跑起来——端口映射、数据持久化、自动重启很多新手有个误区:觉得Docker容器是"临时的",数据放进去随时会丢。这不是Docker的问题,是你没做数据持久化。Docker提供了三种持久化方式: 方式 适用场景 示例 bind mount 开发调试、配置文件 ./html:/usr/share/nginx/html volume 数据库等生产数据 db_data:/var/lib/mysql tmpfs 临时数据(重启即丢) 很少用 我的推荐: 数据库用volume,应用代码用bind mount。另外三个必加的配置项:restart: always # 服务器重启后容器自动启动 restart: unless-stopped # 除非手动停止,否则自动重启(推荐) network_mode: bridge # 默认,容器间通过名称通信 为什么不推荐 --net=host? 安全。bridge模式下容器有独立的网络栈,就算某个容器被攻破了,攻击者也不能直接访问宿主机的全部端口。第四步:用NPM(Nginx Proxy Manager)统一管理域名和SSL好,现在你VPS上跑了好几个容器,每个容器占一个端口——8080、3000、5000……难不成你要告诉用户"访问我的网站,记得加端口号"?当然不是。你需要一个反向代理。而Nginx Proxy Manager(NPM)是目前最省事的方案——有Web界面,点几下就能配好域名 + SSL证书,而且是Docker一键部署的。version: '3.8' services: npm: image: jc21/nginx-proxy-manager:latest ports: - "80:80" # HTTP - "443:443" # HTTPS - "81:81" # 管理界面 volumes: - npm_data:/data - npm_ssl:/etc/letsencrypt restart: unless-stopped volumes: npm_data: npm_ssl: 启动后访问 http://你的VPSIP:81,默认账号 admin@example.com / changeme。进去之后你想干嘛? 添加一个域名 blog.example.com 指向 web:80(注意这里是容器名,不是IP) 一键申请Let's Encrypt SSL证书 打开强制HTTPS 全部鼠标操作,不用手动配Nginx配置文件的滋味,你试过一次就回不去了。 是不是?而且,你后续每新增一个服务,只需要在NPM后台加一条转发规则就行了——完全不用碰服务器配置。一步到位:一个Docker Compose模板管所有说了这么多,给你一个可以直接用的模板。这是一个我在用的"一人公司"级VPS部署方案:version: '3.8' networks: app_net: driver: bridge services: # --- 反向代理 --- npm: image: jc21/nginx-proxy-manager:latest ports: - "80:80" - "443:443" - "81:81" volumes: - npm_data:/data - npm_ssl:/etc/letsencrypt networks: - app_net restart: unless-stopped # --- 博客(WordPress) --- wordpress: image: wordpress:6.7-php8.2-apache ports: - "8080:80" environment: WORDPRESS_DB_HOST: wp_db WORDPRESS_DB_USER: wp_user WORDPRESS_DB_PASSWORD: wp_pass WORDPRESS_DB_NAME: wp_db volumes: - wp_data:/var/www/html networks: - app_net restart: unless-stopped wp_db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: root_pass MYSQL_DATABASE: wp_db MYSQL_USER: wp_user MYSQL_PASSWORD: wp_pass volumes: - wp_db_data:/var/lib/mysql networks: - app_net restart: unless-stopped # --- API服务(Node.js示例) --- api: image: node:20-alpine working_dir: /app volumes: - ./api:/app command: sh -c "npm install && node server.js" ports: - "3000:3000" networks: - app_net restart: unless-stopped volumes: npm_data: npm_ssl: wp_data: wp_db_data: 你看,一个文件,三个服务,各自独立又互相联通。 你甚至可以把这个文件放在Git仓库里,换一台VPS直接 docker compose up -d 就全跑起来了——这才是真正的"基础设施即代码"。常见坑和应对方案我踩过的坑,你就不用再踩了。坑1:VPS内存太小,跑不动多个容器这是最常被问的问题。2026年的入门级VPS一般是1G内存。Docker本身占100MB左右,一个Nginx占50MB,一个MySQL占300MB——看起来还行对吧?但如果你要跑3-4个服务,1G内存确实不够用。解决方案: - 选2G内存以上的VPS(RackNerd的AMD Ryzen系列2G内存大概$20/年左右) - 用 --memory="256m" 限制单个容器内存 - 非核心服务用SQLite替代MySQL坑2:容器日志撑爆磁盘默认情况下Docker会无限保留容器日志。跑一个月,/var/lib/docker可能就被日志撑爆了。解决方案: 在 docker-compose.yml 里加上日志限制:services: any_service: logging: driver: json-file options: max-size: "10m" max-file: "3" 坑3:忘记配置防火墙装了Docker之后,iptables会被Docker接管。如果你之前用ufw配了防火墙规则,可能会出现Docker容器能绕过防火墙的情况。解决方案:# 在 /etc/ufw/after.rules 中配置Docker网段规则 # 或者简单粗暴:只让Docker暴露你指定的端口 坑4:用便宜VPS跑生产数据库这里我必须直说了——20块钱一个月的VPS,它的磁盘IO和稳定性是不足以跑生产数据库的。 你要是做个个人博客或side project,没问题。但如果是面向客户的产品,数据库至少要用云厂商的RDS,或者买NVMe SSD VPS。这不是Docker的问题,这是成本认知的问题。总结回过头来看,2026年的VPS市场已经卷到了一个非常夸张的程度。$2-3一个月就能拿到一台性能不错的KVM VPS,配上Docker,你完全可以用一杯奶茶的价格撑起一个"一人公司"的技术栈。最后给你几个建议,供你参考: 新手入门:买一台2G内存以上的VPS,装Docker,用NPM管理域名,从WordPress或静态博客开始 进阶玩家:学Docker Compose,把你的服务都编排起来,配上Grafana监控 高级玩法:用Docker Swarm或K3s做集群,不过——说真的,个人用不到这个级别 这几年我见过太多人,买了一台VPS就只装了个面板跑博客,然后吃灰。其实只要你愿意花一个下午的时间把Docker跑起来,你的VPS能干的事情会多得多——CI/CD、AI代理、文件同步、开发环境、VPN、监控系统……别让你的VPS闲着,也别让你的技术止步于装面板。(全文完)
2026年06月29日
0 阅读
0 评论
0 点赞