Todos los productos
Search
Centro de documentos

Elastic Container Instance:Mount a cloud disk volume to an ECI instance

Última actualización: Sep 05, 2026

De forma predeterminada, el almacenamiento de los contenedores es efímero: los datos escritos dentro de un contenedor se pierden cuando este se reinicia. Montar un volumen de disco permite que los datos persistan entre reinicios. Este tema explica cómo montar un disco como volumen al crear una elastic container instance mediante la API CreateContainerGroup.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Una elastic container instance en la zona de disponibilidad destino

  • Un disco pay-as-you-go en la misma zona de disponibilidad que la instancia (para aprovisionamiento estático)

Limitaciones

  • Solo se pueden montar discos pay-as-you-go. Consulte Block storage billing.

  • Un disco solo se puede montar en una elastic container instance a la vez; los discos no se pueden compartir.

  • Cada elastic container instance admite un máximo de seis volúmenes de disco.

  • El disco debe estar en la misma zona de disponibilidad que la elastic container instance. No se admite el montaje entre zonas. Cree el disco en la zona destino antes de montarlo.

  • No se pueden montar discos NVMe con la función de montaje múltiple habilitada (discos compartidos NVMe).

  • No se pueden montar discos que tengan particiones. Si utiliza una instantánea para crear el disco y este tiene particiones, tampoco se podrá montar.

Funcionamiento

Los volúmenes de disco utilizan el complemento FlexVolume con el controlador alicloud/disk. Al llamar a CreateContainerGroup, usted:

  1. Declara un volumen mediante los parámetros Volume.N.* y especifica el origen del disco (disco existente o disco nuevo).

  2. Monta el volumen declarado en un contenedor mediante los parámetros Container.N.VolumeMount.N.* y especifica la ruta de montaje y el comportamiento.

Los dos modos de aprovisionamiento difieren en el origen del disco:

Modo

Cuándo utilizarlo

Parámetro clave

Aprovisionamiento estático

Cuando ya cuenta con un disco para conectar

volumeId en FlexVolume.Options

Aprovisionamiento dinámico

Cuando ECI crea un disco nuevo durante el inicio

volumeSize en FlexVolume.Options

Declarar un volumen

Establezca los siguientes parámetros Volume.N.* para declarar un volumen de disco.

Parámetro

Tipo

Ejemplo

Descripción

Volume.N.Name

String

disk-demo

Nombre del volumen. Se referencia mediante Container.N.VolumeMount.N.Name durante el montaje.

Volume.N.Type

String

FlexVolume

Establézcalo en FlexVolume para usar el complemento FlexVolume.

Volume.N.FlexVolume.Driver

String

alicloud/disk

Establézcalo en alicloud/disk para montar un disco de Alibaba Cloud.

Volume.N.FlexVolume.FsType

String

ext4

Tipo de sistema de archivos. Valores válidos: ext4, ext3, xfs, vfat. Valor predeterminado: ext4.

Volume.N.FlexVolume.Options

String

{"volumeId":"d-bp1****"}

Cadena JSON que contiene la configuración del disco. Consulte las secciones siguientes para ver las claves disponibles.

Aprovisionamiento estático: uso de un disco existente

Proporcione volumeId en FlexVolume.Options para conectar un disco existente. El disco debe estar en estado Pending y en la misma zona de disponibilidad que la instancia. Cuando se especifica volumeId, se ignoran todos los demás parámetros de atributos del disco (volumeSize, performanceLevel, etc.). Si no especifica volumeId, debe especificar volumeSize.

Clave de opción

Descripción

volumeId

ID del disco que se va a conectar.

Aprovisionamiento dinámico: creación de un disco nuevo

Omita volumeId y proporcione volumeSize para que ECI cree un disco nuevo durante el inicio. El sistema utiliza automáticamente un SSD mejorado (ESSD); no es posible especificar la categoría del disco.

Clave de opción

Obligatorio

Descripción

volumeSize

Sí

Tamaño del disco en GiB. Valores válidos: 20–32768. Si también especifica snapshotId, el tamaño real del disco será el mayor entre volumeSize y el tamaño del disco basado en la instantánea.

performanceLevel

No

Nivel de rendimiento (PL) del ESSD. Consulte ESSDs.

deleteWithInstance

No

Indica si se debe liberar el disco cuando se libere la instancia. Valor predeterminado: true.

encrypted

No

Indica si se debe cifrar el disco. Valor predeterminado: false. Consulte Encryption overview.

kmsKeyId

No

ID de la clave de Key Management Service (KMS) utilizada para el cifrado del disco.

snapshotId

No

ID de la instantánea que se utilizará al crear el disco. Consulte Overview.

tags

No

Etiquetas para asociar al disco. Se admiten hasta 20 etiquetas. Formato: "tagkey1:tagvalue1,tagkey2:tagvalue2".

Montar un volumen en un contenedor

Después de declarar un volumen, utilice los parámetros Container.N.VolumeMount.N.* para montarlo en un contenedor.

Parámetro

Tipo

Ejemplo

Descripción

Container.N.VolumeMount.N.Name

String

disk-demo

Nombre del volumen que se va a montar. Debe coincidir con un valor de Volume.N.Name.

Container.N.VolumeMount.N.MountPath

String

/data

Ruta dentro del contenedor donde se monta el volumen. Los datos existentes en esta ruta quedan ocultos por el volumen.

Container.N.VolumeMount.N.SubPath

String

/logs

Subdirectorio del volumen que se va a montar. Utilícelo para montar distintos subdirectorios del mismo volumen en diferentes contenedores.

Container.N.VolumeMount.N.ReadOnly

Boolean

false

Indica si la ruta de montaje es de solo lectura. Valor predeterminado: false.

Container.N.VolumeMount.N.MountPropagation

String

None

Controla si los puntos de montaje se comparten entre los contenedores y el host. Valor predeterminado: None. Consulte la tabla siguiente.

Modos de propagación de montaje

Valor

Lo que ve el contenedor

Lo que ve el host

None

Solo los puntos de montaje presentes al momento de la conexión; no son visibles los montajes posteriores en este volumen ni en sus subdirectorios.

Ningún punto de montaje creado dentro del contenedor es visible en el host.

HostToContainer

Todos los puntos de montaje posteriores realizados en este volumen o sus subdirectorios en el host son visibles dentro del contenedor.

Ningún punto de montaje creado dentro del contenedor es visible en el host.

Bidirectional

Todos los puntos de montaje posteriores realizados en este volumen o sus subdirectorios en el host son visibles dentro del contenedor.

Todos los puntos de montaje creados dentro del contenedor se propagan al host y a todos los contenedores de todas las elastic container instances que utilicen el mismo volumen.

Para montar volúmenes en contenedores de inicialización, utilice los mismos parámetros con InitContainer en lugar de Container .

Ejemplos

Los siguientes ejemplos muestran los parámetros clave que se deben pasar a CreateContainerGroup.

Ejemplo 1: Aprovisionamiento estático (disco existente)

ContainerGroupName=test-disk1
SecurityGroupId=sg-bp1daxpbz9lzpvvc****
VSwitchId=vsw-bp1gds63lmlm7ib05****

# Declare the volume
Volume.1.Name=disk-demo
Volume.1.Type=FlexVolume
Volume.1.FlexVolume.Driver=alicloud/disk
Volume.1.FlexVolume.FsType=ext4
Volume.1.FlexVolume.Options={"volumeId":"d-2zebuamrpar7xnj****"}

# Mount the volume to the container
Container.1.Name=nginx
Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
Container.1.VolumeMount.1.Name=disk-demo
Container.1.VolumeMount.1.MountPath=/data
Importante

El disco debe estar en estado Pending y en la misma zona de disponibilidad que la instancia antes de ejecutar esta operación.

Ejemplo 2: Aprovisionamiento dinámico (disco nuevo)

ContainerGroupName=test-disk2

# Declare the volume
Volume.1.Name=disk-demo
Volume.1.Type=FlexVolume
Volume.1.FlexVolume.Driver=alicloud/disk
Volume.1.FlexVolume.FsType=ext4
Volume.1.FlexVolume.Options={"volumeSize":"50","tags":"test:eci"}

# Mount the volume to the container
Container.1.Name=nginx
Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
Container.1.VolumeMount.1.Name=disk-demo
Container.1.VolumeMount.1.MountPath=/data

Se crea automáticamente un ESSD de 50 GiB cuando se inicia la instancia. De forma predeterminada, el disco se libera junto con la instancia (deleteWithInstance: true).

Pasos siguientes