在VPS上开始使用Docker

由ApexVPS团队撰写 • 最后更新:2026年7月 • 8分钟阅读

VPS上运行Docker是几分钟内从空白的Ubuntu服务器到运行中的Web应用、数据库或自托管服务的最快方式。无需与系统包和冲突的依赖项斗争,只需拉取预构建的镜像并启动容器。本初级指南将引导您在Ubuntu或Debian上安装Docker和Docker Compose,介绍您需要的核心概念,启动您的第一个容器,使用卷持久化数据,以及一些安全基础知识,以避免踩坑。

为什么在VPS上运行Docker?

虚拟专用服务器为您提供完全的 root 权限和专用资源,这正是容器所需要的。安装 Docker 后,您可以在不互相干扰的情况下并行运行多个隔离服务。每个容器自带其库,因此 Node 应用、Postgres 数据库和反向代理可以干净地共存于一台机器上。如果您的目标是在 VPS 上自行托管应用——比如个人云、Wiki 或媒体服务器——Docker 能让每个服务整洁且可复现。

容器也是可移植的。与笔记本电脑上运行的相同 Compose 文件可以同样在服务器上运行,从而消除了经典的"在我机器上能跑"的问题。犯错后重建服务只需几秒钟,而不是花费整个下午重新安装软件包。

通俗易懂的核心概念

在接触命令行之前,了解四个基本构件会有所帮助:

第 1 步:在 Ubuntu 或 Debian 上安装 Docker

安装 Docker Engine 最简单且官方支持的方式是使用便捷脚本。通过 SSH 连接到服务器并运行:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

这将安装 Docker Engine 以及 Compose 插件。完成后,确认版本:

docker --version
docker compose version

默认情况下,Docker 需要sudo。要以您的普通用户身份运行,请将您自己添加到docker组中,然后注销并重新登录,以使更改生效:

sudo usermod -aG docker $USER

Docker 在大多数系统上也默认随开机启动。如果您需要手动启用:

sudo systemctl enable --now docker

偏好软件包仓库方法,或想了解与您的具体发行版相关的详细信息?官方Docker 安装文档涵盖了所有选项。上述便捷脚本非常适合全新的 VPS。

第 2 步:运行您的第一个容器

使用经典的 hello-world 镜像测试安装:

docker run hello-world

Docker 拉取镜像,运行一次,并打印确认消息。现在让我们运行一些切实可见的内容。此命令在后台启动一个 Nginx Web 服务器,并将主机的端口 8080 映射到容器的端口 80:

docker run -d -p 8080:80 --name web nginx

在浏览器中打开http://your-server-ip:8080,您应该看到 Nginx 欢迎页面。几个值得了解的标志:

检查正在运行的内容,然后在完成后停止并移除容器:

docker ps
docker stop web
docker rm web

少量命令即可覆盖大多数日常工作。docker images列出已拉取的镜像,docker logs web显示容器的输出以进行故障排除,docker exec -it web bash在运行中的容器内打开 shell,以便您进行探索。学习这五六个命令足矣自信地管理小型服务器,其他命令可在需要时查阅。

第 3 步:使用 Docker Compose 部署多容器应用

长时间输入冗长的 docker run 命令会很烦人。Docker Compose 让你能在单个文件中描述整个技术栈,并通过一条命令启动它。创建一个名为 compose.yaml 的文件:

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - web-data:/usr/share/nginx/html
    restart: unless-stopped

volumes:
  web-data:

在同一个目录下,在后台启动所有服务:

docker compose up -d

Compose 会为你自动创建网络、命名卷和容器。有用的配套命令:

docker compose ps
docker compose logs -f
docker compose down

restart: unless-stopped 策略意味着服务在重启或崩溃后会自动恢复——这对于你无法全天候盯着的服务器来说非常方便。

第 4 步:使用数据卷持久化数据

这是初学者最容易出错的部分。容器自身文件系统内写入的任何内容,在容器被删除或重新创建时都会消失。要保留数据,需将其放入卷中。常见有两种方式:

通过命令行检查和管理的卷:

docker volume ls
docker volume inspect web-data

只要你的重要路径指向卷,就可以整天删除和重建容器而不丢失一个字节。将卷目录作为服务器备份的一部分进行备份。

第 5 步:更新镜像和容器

容器镜像和任何软件一样会收到安全及功能更新。更新 Compose 技术栈是一个两步例行操作:拉取更新的镜像,然后重新创建容器。

docker compose pull
docker compose up -d

因为你的数据存放在卷中,所以重新创建容器是安全的。随着时间的推移,未使用的镜像会堆积起来并占用磁盘空间。请定期清理它们:

docker image prune

当你想要可预测、可重复的更新而不是意外时,请固定到特定的版本标签(例如使用 postgres:16 而不是 latest)。

面向初学者的基础 Docker 安全

容器很便捷,但它们并不是神奇的安全边界。养成几个好习惯可以让你避免麻烦:

在向公众暴露任何内容之前,请阅读我们的配套检查清单,了解如何在购买 VPS 后的前 10 分钟内保护你的 VPS——其中涵盖了 SSH 密钥、防火墙和自动更新,这些与 Docker 主机完美配合。

选择一款适合 Docker 的 VPS

Docker 在普通硬件上也能运行,但一旦堆叠多个容器,专用资源就会带来真正的不同。共享、超卖的托管意味着吵闹的邻居可能在最糟糕的时刻拖慢你的数据库。ApexVPS 为你提供真正专用的 vCPU、NVMe SSD 存储和完整 root 权限,因此你的容器能获得你所支付的性能。每个套餐都支持 Ubuntu、Debian 和其他流行的发行版,并且你可以在注册时添加 SSH 密钥。

结账仅支持通过 OxaPay 使用加密货币支付,接受 Bitcoin、Ethereum、USDT 以及 30 多种加密货币——无需信用卡、无需银行账户、无需 KYC。您只需提供一个邮箱即可接收访问详情,就这么简单。请访问 ApexVPS 定价页面 对比配置和区域,找到适合您容器工作负载的方案。

常见问题

在 VPS 上运行 Docker 需要大量 RAM 吗?

不需要。Docker 本身很轻量,额外开销很小。1 到 2 个容器在 2 GB RAM 下即可流畅运行,而 4 GB 或以上则能为数据库和多个服务提供充足余量。

是 docker-compose 还是 docker compose?

在现代安装中,Compose 作为插件提供,因此命令是 docker compose(带空格)。旧的独立 docker-compose 二进制文件仍然可用,但正逐渐被淘汰——建议在新环境中使用插件版本。

容器被删除时,我的数据存储在哪里?

容器内写入的任何内容都会在删除时丢失。请将重要数据存储在命名卷或绑定挂载中,以便在容器重建后保留。这才是数据库和上传文件安全持久化的方式。

我可以用加密货币支付 Docker 就绪的 VPS 吗?

可以。ApexVPS 结账仅支持通过 OxaPay 使用加密货币,接受 Bitcoin、Ethereum、USDT 及 30 多种币种。注册仅需邮箱,无需信用卡和身份验证。

准备好启动您的第一个容器了吗? 查看 Docker 就绪的 VPS 方案 →