新老用户进群领券,100% 有券等你来冲!新老用户进群领券,100% 有券等你来冲! 体验按量付费开发机!立即领券
Skip to content

操作容器

本文将具体介绍如何使用开发机的「Docker 容器」功能管理一个容器,包括创建、启动和停止等。

NOTE

请确保该开发机已打开「Docker 容器」开关。您可以前往开发机详情页检查「Docker 容器」开关状态,通过「改配」按钮开启该功能。

DANGER

开启「Docker 容器」后,开发机(主容器)将固定保留 10% 的资源。剩余 90% 的 CPU 和内存资源将分配给开发机内部的容器。如果在主容器内执行耗内存的操作可能会容易导致 OOM。

启动容器

作为测试,您可以从智算云平台镜像中心的公共仓库(cr.infini-ai.com/infini-ai)中拉取预置镜像,并启动一个容器。

例如,下面的命令启动并进入容器:

shell
# 例1 登入开发机后,执行以下命令启动容器输出一个 “Hello World”,之后终止容器。
docker run --rm --name ubuntu cr.infini-ai.com/infini-ai/ubuntu:22.04-20240429 /bin/echo 'Hello world'
# 例2 登入开发机后,启动容器并进入容器
docker run -it --name ubuntu cr.infini-ai.com/infini-ai/ubuntu:22.04-20240429 bash

您可以从镜像中心获取预置镜像地址。

启动并挂载高性能存储

如开发机已挂载共享高性能存储,则可使用 -v 选项将主容器的高性能存储(默认 /mnt)挂载至容器内。

例如,-v /mnt/public:/mnt 将主容器的 /mnt 目录挂载到容器内的 /mnt 挂载点。

shell
docker run -it -v /mnt/public:/mnt --name ubuntu cr.infini-ai.com/infini-ai/ubuntu:22.04-20240429 bash

启动并挂载云盘

如果是使用弹性资源创建的开发机,且可使用云盘,则可使用 -v 选项将主容器的云盘目录(默认 /datadisk)挂载至容器内。

挂载前,请先在开发机内修改云盘目录权限,否则无法写入数据:

shell
mkdir /datadisk/host-shared
chmod -R 777 /datadisk/host-shared

例如,-v /datadisk/host-shared:/host-shared 将主容器的 /datadisk/host-shared 目录挂载到容器内的 /host-shared 挂载点。

shell
docker run -it -v /datadisk/host-shared:/host-shared --name ubuntu cr.infini-ai.com/infini-ai/ubuntu:22.04-20240429 bash

启动并挂载 GPU

例如,使用 CUDA 镜像,启动一个带有 GPU 的 Docker 容器。

shell
docker run -it --gpus=all cr.infini-ai.com/infini-ai/cuda:12.2.2-cudnn8-devel-ubuntu20.04

TIP

  • 使用 --gpus=all 挂载开发机所有的 GPU 设备。
  • 旧版开发机启用 Docker 功能时,开发机内部容器会独占全部 GPU。如遇到开发机(主容器)无法与内部容器共享 GPU 的情况,建议将开发机关机再开机,以完成版本更新。

修改默认共享内存大小

如果对共享内存(/dev/shm) 的大小有要求,可以使用 --shm-size 指定共享内存大小。共享内存默认值为 64MB,最大值可调整至为开发机内存 90% 的一半。

shell
docker run -it --shm-size=403g --gpus=all -v /mnt/public:/mnt cr.infini-ai.com/infini-ai/cuda:12.2.2-cudnn8-devel-ubuntu20.04