Skip to content

使用你的容器

别人在他自己的机器上给了你一个容器。它用起来像一台小虚拟机:你以 root 身份 SSH 进去,装包,跑服务,top 显示的是你自己的进程。

这一页是张地图。 你想干的事几乎都在别的页里写清楚了,这里只告诉你在哪一页。 留在这一页的,是那几件关于容器本身、而不是关于里面那个系统的事: 重装会做什么、限额撞上去是什么感觉、出问题先看哪里。

如果你是跑机器的那一边,而不是拿着容器的那一边,你要看的是 operating the panel(英文)。


你想要哪个系统

你想要的选哪个
想把一台小盒子榨干Alpine —— 文件系统 36 MB,空转时占 15 MB 内存;Debian 是 164 MB 和 105 MB。没有 systemd,没有 apt,没有 glibc,所以为别的系统写的教程都要翻译一遍。那一页就是那份翻译,而且老实交代了代价。
想要一个普通的、不用学的 LinuxDebian —— 大一些,换来 aptsystemctljournalctl。你搜到的每一篇博客都能照抄。拿不准就选这个。

Ubuntu 和 Debian 那一页完全一样。AlmaLinux、Rocky、CentOS、Fedora 也一样, 把 apt 换成 dnf 就是。能装的系统的完整清单在第 2 节;Alpine 第 1 节把两边的占用逐行拆开了 —— 内存花在哪、硬盘花在哪、以及多大的容器该选哪个。

你也不是只能用别人给你的那个:重装成另一个系统只要一分钟,/data 会保留。


什么在哪一页

我想在这里
第一次登录、设密码Alpine 第 2 节 · Debian 第 1 节
加 SSH 公钥同上两节。公钥加在面板的 账号 → SSH 公钥 里,不是加进容器
装软件Alpine 第 3–4 节 · Debian 第 2 节
让程序开机自启,或者自己写一个服务Alpine 第 3、6 节 · Debian 第 2、4 节
装编辑器、githtop、网络工具Alpine 第 5 节 · Debian 第 3 节
看日志、看进程、看内存和硬盘Alpine 第 7–8 节 · Debian 第 5–6 节
用自己的域名建站,带 HTTPS快速上手 —— 从加域名到小锁,四步
开一个裸端口 —— 游戏服、数据库、VPN公网端口
备份和恢复数据库备份 PostgreSQL
备份文件和目录备份文件
自己做一个镜像并装上自己做镜像
把我自己的软件加进 app-setup 菜单添加你自己的软件
用脚本或监控读我这个容器的各项数字面板 REST API

第一天值得敲的三个词,都在容器里:

sh
app-setup     # 从菜单装软件:LNMP、WordPress、数据库、开发环境
dashboard     # 这台盒子是什么、被允许用多少、正在用多少
helppage      # 这份说明,在容器里,不用开浏览器

1. 容器怎么来的

一个容器变成你的,有两条路,最后都落到同一个地方 —— 它出现在面板的 我的容器 里。

怎么给的你要做什么
房东把它绑到你的用户名上什么都不用做。登录就在那儿。
房东给你一个分享码容器 → 兑换分享码 里兑换。兑换的时候顺便选 shell 登录名。

两条路都一样:它在到你手上之前就已经建好、并且已经在跑了 —— 机器、限额、到期日是房东定的,镜像是从第 2 节那张表里挑的。

如果账号是别人替你开的,你有用户名但还没有密码。 用房东留的那个邮箱走 忘记密码。用户名永远不变 —— 它是你在面板存储里的目录名 —— 但邮箱和密码你可以在 账号 里自己改。

一个账号可以同时拿着来自很多个房东的容器,不需要每台机器一个登录。

shell 的密码和你的面板密码是两回事,而且只显示一次 —— 容器建好那次,以及之后你每次重设的那一次。面板只留哈希。 丢了?在容器页面上、或者在容器里敲 passwd 重设一个,没有能找回来的东西。


2. 重启和重装

容器页面上的两个按钮,分量完全不一样。

重启是安全的。它把容器停掉再起来。文件系统、你装的包、你配的服务, 都不动。

重装/ 抹掉,用一个镜像重建,/data 保留。 你装的每一个包、配的每一个服务、/data 以外的每一个文件:没了。 这件事不能撤销,所以对话框会让你把容器的名字打一遍。 你的 shell 登录名、密码、SSH 的地址都活得下来,域名和限额也一样。

这也正是 /data 值得用起来的原因。数据库、上传的文件、 任何丢了你会难受的东西:放到 /data 下面,然后让服务指过去。

已经在 shell 里的话,同一件事这样做:

reinstall                  这个容器能用什么重建
reinstall debian-13        其中一个 —— 名字的一部分就够了
reinstall ref ghcr.io/you/thing:tag
reinstall archive box.tar

光敲 reinstall 只会打印清单。确认之后,你的 SSH 会话会断 —— 容器在重建到一半时被停掉了。这是应该发生的事;一分钟后再登回来就行。

新镜像从哪来

从这台机器是房东在那台机器上缓存好的清单。这些镜像已经在那儿解开了, 所有用它建的容器共用一份,所以装一个不下载任何东西,几秒就好, 也不花你的流量。这是常见情况。

我自己的镜像是一个完整的仓库地址 —— ghcr.io/you/thing:tag —— 由宿主机去下载。它放在你自己容器的磁盘里,别人看不到, 这意味着每一次重装都要重新下载一遍,而且每一次下载都算你的流量。 房东可能根本没开这个选项,而没有独立磁盘的容器也没地方放这种只有它能看见的 镜像;对话框会告诉你是哪一种。见自己做镜像

有的房东还会提供机器上的一个归档文件, 这是网络扛不住一次 200 MB 拉取的房东把镜像交给你的办法。

能装的系统

房东缓存了什么,你就能挑什么;下面这张表是 hqnode 发布出来给他们缓存的全部。 每一个都会启动一个 init,所以每一个都有服务、cron、包管理器, 和一个能用的 top

版本包管理器init
Alpine3.24、3.23apkOpenRC
Debian13、12、11aptsystemd
Ubuntu26.04、24.04、22.04、20.04、18.04*、16.04*aptsystemd
AlmaLinux10、9、8dnfsystemd
Rocky9、8dnfsystemd
CentOSStream 10、Stream 9、7*dnf,7 上是 yumsystemd
Fedora43dnfsystemd

* 已经过了生命周期。它们还在这儿是因为总有人要,而且它们还能启动 —— 但里面的东西再也不会有安全更新了。不要用它们对外提供任何服务。

AlmaLinux 10 和 CentOS Stream 10 要求宿主机的 CPU 大致是 2015 年以后的 (x86-64-v3)。更老的机器上,它们会在第一条命令就挂掉, 报一个 glibc 关于 CPU 的错;这是发行版自己的要求,房东知道自己的硬件够不够。


3. 你的限额

房东设五个数字。容器页面把每一个和你正在用的量并排显示, 每次 SSH 登录也会打一遍

  System   Debian GNU/Linux 13 (trixie)
  Uptime   6d 4h
  CPU      4% of 2 cores
  Memory   734.0M of 2.0G (36%)
  Disk     11.0G of 40.0G (28%)
  Traffic  318.0G of 1.0T (29%) · 706.0G left
  Expires  2026-09-30 (in 41 days)

dashboard 会把剩下的也打出来 —— 公网端口、域名、怎么再登进来; dashboard netdashboard cpu mem 只打其中一部分。

限额撞上去是什么感觉
vCPU你会被限速,但不会被杀。一切只是变慢。
内存内核先挤压你,然后把最大的那个进程 OOM 掉。一个服务反复挂掉、日志里却什么都没有,一般就是这个。
Swap没被碰过的内存页被挪出去,而不是算在内存里。它买的是空间,不是速度。为 0 就表示你只有内存。
硬盘写入失败,报 "no space left on device"。//data 算在一起。
流量到 80% 面板记一条警告;到 100% 容器被暂停 —— 是停掉,不是删掉。

其中三个值得多说一句:

你的 vCPU 数字是下限,不是上限。 没人要的核就是你的, 所以一个只卖了半核的容器,在邻居都闲着的时候能跑到两核, 邻居醒了再掉回半核。同一个跑分跑两次会给你两个结果; 诚实的那个是机器忙的时候跑出来的。如果房东卖给你的是批处理容器, 规则更简单:你拿别人剩下的,而且你跑什么都不会拖慢别人 —— 编译和过夜任务很合适,有人在等着的东西不合适。

Swap 不是额外的内存。 宿主机一般把它压缩着放在 RAM 里, 所以冷页的实际代价只有它标称的一小部分。小容器上有一点是健康的; 如果又多又慢,说明工作集根本放不下,加再多 swap 也没用。

流量按月计,窗口从房东挑的某一天开始 —— 常常是 1 号,但不一定; 容器页面上写着当前这个窗口是哪天开的。进出都算。 被暂停的容器会在窗口翻篇时回来,房东提高额度的话可以更早。


4. 到期

每个容器都有一个到期日,最后一周面板会在页面上提醒你。

日子过了,容器会被停掉,SSH 登录被禁用。什么都不会被删。 到期是一个开关,不是一把扫帚:硬盘还是你离开时的样子。 去找房东续期,日期往后一挪它就直接回来 —— 数据一样,登录一样。


5. 出问题的时候

你看到的通常是什么
SSH 被拒绝容器到期了,或者因为流量超额被暂停了。面板上写着是哪一个。
SSH 一直反复问密码密码不对。在容器页面上重设一个 —— 面板没法把旧的显示给你。
页面上说机器离线房东的机器没在和面板说话。你的容器可能还跑得好好的;但在它回来之前,页面上什么都改不了。找房东。
重启或重装失败同上:面板够不着那台机器。
服务莫名其妙死掉,什么错都没有一般是内存。跑的时候盯着内存那一行看。
"No space left on device"硬盘。//data 共用一个额度。
域名或公网端口连得上,但什么都不返回服务绑在了 127.0.0.1。必须绑 0.0.0.0 —— Alpine 第 9 节 · Debian 第 7 节
什么都很慢CPU 被限速了,或者宿主机自己在忙。你页面上那张图覆盖最近七天。

面板不在你跑的任何东西的路径上。它挂了,你的容器照样跑,SSH 照样能登 —— 只是在它回来之前你没法重启和重装。