Skip to content

使用容器

GPU 容器创建完成并进入运行中状态后,可以通过 SSH 或 Jupyter 进入容器,使用 GPU 进行开发、训练和推理。

概述

容器运行后,实例详情页会展示 GPU 型号、GPU 数量、镜像、磁盘用量、计费周期和访问端口等信息。日常使用时,重点关注容器状态、连接入口、GPU 是否可见和数据盘容量。

建议把代码、数据、模型和输出文件统一放在 /workspace,避免系统盘空间不足或数据管理混乱。

查看容器信息

进入实例详情后,重点查看以下内容:

信息说明
实例 ID启动、停止、删除、扩容时用于定位实例
状态运行中 时可以连接使用
GPU 型号和数量当前容器分配到的 GPU 资源
镜像当前容器使用的系统和框架环境
数据盘容量/workspace 的总容量、已用容量和使用率
访问端口SSH、Jupyter 等连接入口
Jupyter 地址浏览器访问 Notebook 的入口,通常已带访问 token

SSH 连接

实例详情中会展示 SSH 访问入口。找到用途为 SSH 的端口后,可以复制页面提供的 SSH 命令。

命令示例:

bash
ssh root@103.44.80.45 -p 30037

Windows 用户可以在 PowerShell 或 Windows Terminal 中执行:

powershell
ssh root@103.44.80.45 -p 30037

Windows 命令行 SSH 登录 GPU 容器

第一次连接时,如果终端提示:

text
Are you sure you want to continue connecting?

输入:

text
yes

然后按提示输入创建容器时设置的 SSH 密码。密码输入过程中不会显示字符,这是正常现象,输入完成后回车即可。

平台不会在实例详情、列表、日志、订单或账单中展示 SSH 密码。如果忘记密码,请重新创建容器或按平台后续提供的重置能力处理。

使用 SSH 公钥登录

如果已在 账户中心 > 公钥管理 添加 SSH 公钥,并且列表中的同步状态为 已下发,可使用与该公钥配对的本地私钥登录运行中的容器:

bash
ssh -i ~/.ssh/id_ed25519 root@<访问地> -p <SSH 可访问端>

-i 参数必须指定本地私钥文件,不能填写以 .pub 结尾的公钥文件。添加、删除公钥的步骤和支持格式请参见 SSH 公钥管理

Jupyter 访问

如果镜像中已安装并启动 Jupyter,实例详情会提供 Jupyter 访问地址。优先复制页面展示的 Jupyter 地址到浏览器打开;该地址通常已经带有访问 token。

访问地址示例:

text
http://103.44.80.45:40037/?token=kapczxmgf4shirngmjd1lnqvABCDE12

JupyterLab 页面

如果页面要求输入 token,可以复制实例详情中的 Jupyter token;token 由系统创建容器时自动生成,用户不需要手动设置。

如果浏览器无法打开,请检查:

检查项说明
实例状态必须是 运行中
服务状态镜像内需要启动 Jupyter 服务
监听地址Jupyter 应监听 0.0.0.0
端口使用页面展示的 Jupyter 端口
网络本地网络需要能访问该地址

如果当前镜像没有自动启动 Jupyter,可以先通过 SSH 进入容器,再执行启动命令:

bash
jupyter lab --ip=0.0.0.0 --port=8888 --allow-root --ServerApp.token="${JUPYTER_TOKEN}"

在容器内启动 Jupyter

启动后仍以实例详情页展示的 Jupyter 外部地址为准,不要直接访问容器内的 127.0.0.1:8888

自定义端口

运行中的容器如需对外提供 HTTP Web 服务或 HTTP 推理接口,可在实例的 登录 弹窗中切换到 自定义端口 页签,新增容器端口映射。自定义端口仅支持 HTTP 协议。

  1. 先在容器内启动服务,并确保服务监听在 0.0.0.0:<容器端口>,例如:

    bash
    python3 -m http.server 8000 --bind 0.0.0.0
  2. 新增端口 中输入容器内服务使用的端口,点击 添加

  3. 容器端口范围为 16553522(SSH)和 8888(Jupyter)为系统保留端口,不能新增。

  4. 添加成功后,页面会展示 自定义端口可访问端口可访问地址。访问服务时,请使用页面给出的可访问地址和可访问端口,不要直接使用容器端口。

自定义端口仅创建访问映射,不会启动容器内的应用。请仅暴露确有需要的服务,并自行做好应用鉴权和访问控制。

使用 GPU

进入容器后,先确认 GPU 是否可见:

bash
nvidia-smi

在容器内检查 GPU

正常情况下可以看到 GPU 型号、显存、驱动和 CUDA 信息。

nvidia-smi 命令行输出示例

如果镜像安装了 PyTorch,也可以检查 CUDA 是否可用:

bash
python - <<'PY'
import torch
print(torch.cuda.is_available())
print(torch.cuda.device_count())
PY

如果 Python 示例失败,可能只是镜像没有安装 PyTorch。请先以 nvidia-smi 的结果为准。

使用数据盘

推荐将长期数据放到:

bash
/workspace

例如:

bash
cd /workspace
mkdir -p project data output

不建议把重要数据放在 //tmp/root 下。

查看磁盘容量:

bash
df -h /
df -h /workspace

在容器内查看数据盘

数据盘使用率达到预警阈值时,请及时清理无用文件或扩容数据盘。

使用对象存储

当对象存储服务已开通且激活,并且对象存储区域与 GPU 容器所在区域一致时,系统会将对象存储挂载到容器内的 /object-storage 目录。

该目录为只读挂载:可以查看、读取文件或复制文件到 /workspace,但不能在其中上传、修改或删除对象。例如:

bash
ls -al /object-storage
cp -r /object-storage/<文件或目> /workspace/data/

需要上传、修改或删除对象时,请在对象存储控制台或使用对象存储 CLI 完成;训练输出、缓存和可写数据请保存到 /workspace。如果容器内未出现该目录,请确认对象存储已开通、处于可用状态,且所选容器区域与对象存储区域一致。

数据盘扩容

/workspace 容量不足时,可以在实例详情页发起数据盘扩容。

扩容规则:

项目说明
扩容对象只扩容数据盘 /workspace
目标容量必须大于当前数据盘容量
系统盘不支持扩容
费用新增容量会按存储计费规则计费

扩容完成后,实例详情中的数据盘总容量和可计费容量会更新。

保存镜像

当您已在容器中安装依赖、配置运行环境后,可将当前容器保存为自定义镜像,以便后续快速创建相同环境的 GPU 容器。

保存镜像仅固化容器的可写层,例如在容器系统盘中安装的软件、环境配置和未挂载目录中的文件;以下内容不会被保存到镜像中:

  • 数据盘 /workspace 中的数据;

  • 对象存储只读挂载目录 /object-storage 中的数据;

  • 容器外部访问映射、实例计费配置等实例级配置。

操作步骤如下:

  1. 确认容器处于 运行中已停止 状态,且没有创建、启动、停止、删除等未完成操作。

  2. 在实例列表或详情页的 更多操作 中点击 保存镜像

  3. 按页面提示填写镜像名称和 Tag。镜像名称仅支持小写字母、数字、点、下划线、短横线和斜杠;Tag 建议使用清晰的版本号,例如 v1.0cuda12.8,避免长期只使用 latest

  4. 提交后等待镜像固化、推送和仓库确认完成。运行中的容器会在固化时短暂暂停以保证快照一致性,但不会被关机或重启。

  5. 保存完成后,进入 镜像管理 > 我的镜像,选择与源容器相同的地域,确认新镜像处于可用状态。后续创建容器时可在 我的镜像 中选择该镜像。

保存镜像会产生镜像存储费用;不再使用时,请在镜像管理中删除对应镜像。镜像管理中的查看、使用和删除说明请参见 镜像管理

停止、启动和删除

停止容器

停止会关闭容器运行状态,适合临时不使用 GPU 的场景。停止完成后,系统会释放已分配的 GPU 资源,后续不再产生 GPU 算力费用。

停止后请注意:

  • 停止不等于删除。

  • 已分配的 GPU 资源会在停止完成后释放,后续不再产生 GPU 算力费用。

  • 容器和数据仍保留。

  • 如果数据盘超出免费额度,存储费用可能继续产生。

启动容器

已停止的容器可以重新启动。启动成功后,状态会回到 运行中,再通过 SSH 或 Jupyter 连接使用。

删除容器

删除会释放容器、GPU 占用和访问端口,关联数据盘会进入释放流程。

删除前请确认:

  • 重要代码、数据和模型已经保存或迁移。
  • 不再需要该容器继续运行。
  • 删除后实例默认不再出现在列表中。

注意事项

  • 创建成功后不能立刻连接时,请等待状态变为 运行中

  • SSH 连接失败时,优先检查实例状态、SSH 端口、网络连通性、密码和镜像内 SSH 服务。

  • 使用 SSH 公钥登录失败时,确认同步状态为 已下发、本地私钥与已保存公钥匹配,并使用页面展示的 SSH 访问地址和端口。

  • Jupyter 打不开时,优先检查实例状态、Jupyter 地址、token、镜像内是否启动 Jupyter,以及是否监听 0.0.0.0:8888

  • 磁盘使用率来自容器内 df 口径,可能与手动计算结果略有差异。

  • /object-storage 是对象存储的只读挂载目录;请将需要写入的数据、训练输出和缓存保存到 /workspace

  • 保存镜像不会包含 /workspace 数据盘和 /object-storage 中的数据。保存前请将确需固化的环境文件放在容器可写层,并单独备份重要数据。

  • 停止容器完成后会释放 GPU 资源,后续不再产生 GPU 算力费用;容器和数据盘仍会保留。如不再需要容器或数据盘,请删除容器。

  • 删除容器前请先备份重要数据。