Todos os produtos
Search
Central de documentação

Elastic Container Instance:Mount an OSS volume to an elastic container instance

Última atualização: Jun 28, 2026

O Object Storage Service (OSS) oferece armazenamento seguro, econômico e altamente confiável em grande escala para dados não estruturados, como imagens, arquivos de áudio e vídeo. Este tópico descreve como montar um volume do OSS em uma instância de contêiner elástica.

Observações de uso

  • O faturamento do OSS baseia-se no uso e aceita métodos como pagamento conforme o uso, planos de recursos e unidades de capacidade de armazenamento (SCUs). Para mais informações, consulte Visão geral do faturamento do OSS.

  • O OSS fornece armazenamento compartilhado. É possível montar um único bucket do OSS em várias instâncias.

  • Armazene no máximo 1.000 arquivos em um único diretório de montagem.

    O excesso de arquivos pode levar o cliente OSS a consumir muita memória e causar um evento OOM (out-of-memory) na instância.

Pré-requisitos

  1. Crie um bucket do OSS.

    1. Faça login no console do OSS.

    2. Crie um bucket do OSS.

      Para mais informações, consulte Criar buckets.

  2. Escolha um método de autorização.

    • Use uma função do RAM para autorização (Recomendado).

      Crie uma função do RAM e conceda permissões a ela. Para mais informações, consulte Criar uma função do RAM e Conceder permissões a uma função do RAM.

      Ao criar a função, defina Trusted Entity Type como Alibaba Cloud Service, Role Type como Normal Service Role e Trusted Service como Elastic Compute Service (ECS). Anexe a política AliyunOSSFullAccess à função.

    • Use um par de AccessKey para autorização (Não recomendado).

      Obtenha um AccessKey ID e um AccessKey Secret. Para mais informações, consulte Obter um par de AccessKey.

Configuração (API)

Ao chamar a operação da API CreateContainerGroup para criar uma instância de contêiner elástica, use os parâmetros relacionados a Volume para especificar volumes e os parâmetros relacionados a Container.VolumeMount para montá-los nos contêineres. Os parâmetros relevantes estão descritos abaixo. Para mais informações, consulte CreateContainerGroup.

Declarar um volume

Para especificar volumes com parâmetros relacionados a Volume, primeiro defina os tipos e nomes dos volumes. Em seguida, configure os demais parâmetros de Volume conforme o valor do parâmetro Volume.N.Type.

Parâmetro

Tipo

Exemplo

Descrição

Volume.N.Name

String

oss-demo

Nome do volume.

Volume.N.Type

String

FlexVolume

Defina como FlexVolume para criar um volume montado por meio de um plug-in FlexVolume.

Volume.N.FlexVolume.Driver

String

alicloud/oss

Driver do plug-in FlexVolume. Defina como alicloud/oss para montar um volume do OSS.

Volume.N.FlexVolume.Options

String

{"bucket":"test-","url":"oss-cn-hangzhou.aliyuncs.com","ramRole":"ram-"}

String JSON com opções para o objeto FlexVolume.

Ao usar o FlexVolume para montar um volume do OSS, o parâmetro Options define a configuração desse volume. Há suporte para os seguintes parâmetros:

  • bucket: Nome do bucket do OSS.

  • url: Endpoint do bucket do OSS. Obtenha o endpoint na página Overview do bucket desejado no console do OSS. Para mais informações, consulte Regiões e endpoints.

  • path: Caminho do diretório relativo ao diretório raiz do bucket. Valor padrão: /.

  • otherOpts: Parâmetros personalizados definidos durante a montagem do volume do OSS. O formato é -o -o . Exemplo: -o max_stat_cache_size=0 -o allow_other.

  • akId: AccessKey ID usado na autorização por par de AccessKey.

  • akSecret: AccessKey Secret usado na autorização por par de AccessKey.

  • ramRole: Nome da função do RAM usada na autorização por função do RAM.

Montar volumes

Após especificar os volumes, use os parâmetros relacionados a VolumeMount para montá-los nos contêineres.

Parâmetro

Tipo

Exemplo

Descrição

Container.N.VolumeMount.N.Name

String

test-volume

Nome do volume N a ser montado no contêiner N. Este valor corresponde a Volume.N.Name.

Container.N.VolumeMount.N.MountPath

String

/usr/share

Caminho dentro do contêiner onde o volume será montado. Os dados neste diretório ficam ocultos pelos dados do volume.

Container.N.VolumeMount.N.SubPath

String

/usr/sub

Subdiretório do volume. Este parâmetro permite especificar subdiretórios diferentes do mesmo volume para montagem em subdiretórios distintos dos contêineres.

Container.N.VolumeMount.N.ReadOnly

Boolean

false

Define se o diretório de montagem é somente leitura. Valor padrão: false.

Container.N.VolumeMount.N.MountPropagation

String

None

Configuração de propagação de montagem do volume N. A propagação de montagem permite compartilhar volumes montados em um contêiner com outros contêineres na mesma instância de contêiner elástica ou até mesmo com outras instâncias no mesmo host. Valores válidos:

  • None: A montagem do volume não recebe montagens subsequentes feitas neste volume ou em seus subdiretórios.

  • HostToContainer: A montagem do volume recebe todas as montagens subsequentes feitas neste volume ou em seus subdiretórios.

  • Bidirectional: Tem efeito semelhante ao HostToContainer. A montagem do volume recebe todas as montagens subsequentes feitas neste volume ou em seus subdiretórios. Além disso, todas as montagens criadas pelo contêiner N são propagadas de volta ao host e para todos os contêineres de todas as instâncias de contêiner elástica que usam o mesmo volume.

Valor padrão: None.

Nota

Também é possível montar volumes em contêineres init. Os parâmetros necessários são semelhantes aos da tabela anterior. Basta alterar Container para InitContainer.

Configuração (Console)

Ao criar uma instância de contêiner elástica na página de compra do Elastic Container Instance, especifique os volumes na seção Container Group Configurations e monte-os nos contêineres na seção Container Configurations.

Declarar um volume

  1. Na seção Container Group Configurations, expanda Advanced Settings.

  2. Na seção Storage, na aba OSS Persistence, clique em Add.

  3. Configure os parâmetros do volume do OSS.

    • Name: Nome do volume do OSS.

    • Bucket: Nome do bucket do OSS.

    • RAM Role: Função do RAM com permissões para acessar o OSS.

Montar um volume

  1. Na seção Container Configurations, selecione um contêiner e expanda suas configurações avançadas.

  2. Ative a opção Storage e clique em Add.

    Os volumes disponíveis são aqueles declarados na configuração do grupo de contêineres.

    Na linha de configuração de armazenamento, defina Volume como um volume declarado, como oss-demo, selecione um tipo de armazenamento, como OSS Persistence, e insira um Mount Path in Container, como /data. Opcionalmente, especifique um Sub Path, como test, e marque a caixa de seleção Read-only.

Nota

Para montar volumes em vários contêineres, selecione mais contêineres e repita as operações anteriores.

Exemplo de configuração

  1. Crie uma instância de contêiner elástica, Instância A, e monte um volume do OSS nela.

    O exemplo a seguir mostra os parâmetros usados para chamar a operação CreateContainerGroup e criar a Instância A. Para mais informações, consulte CreateContainerGroup.

    ContainerGroupName=test-oss-a
    # Declare the volume
    Volume.1.Name=oss-demo
    Volume.1.Type=FlexVolume
    Volume.1.FlexVolume.Driver=alicloud/oss
    Volume.1.FlexVolume.Options={"bucket":"test-***","url":"oss-cn-hangzhou-internal.aliyuncs.com","ramRole":"ram-***"}
    # 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=oss-demo
    Container.1.VolumeMount.1.MountPath=/data-a
  2. Conecte-se à Instância A e crie um arquivo no diretório de montagem.

    Para saber como se conectar a uma instância de contêiner elástica, consulte Conectar-se a uma instância ECI usando o Workbench.

    root@test-oss-a:/# cd data-a
    root@test-oss-a:/data-a# ls
    root@test-oss-a:/data-a# echo "hello" >test
    root@test-oss-a:/data-a# ls
    test
    root@test-oss-a:/data-a# cat test
    hello
  3. Exclua a Instância A.

  4. Crie outra instância de contêiner elástica, Instância B, e monte o mesmo volume do OSS nela.

    ContainerGroupName=test-oss-b
    # Declare the volume
    Volume.1.Name=oss-demo
    Volume.1.Type=FlexVolume
    Volume.1.FlexVolume.Driver=alicloud/oss
    Volume.1.FlexVolume.Options={"bucket":"test-***","url":"oss-cn-hangzhou-internal.aliyuncs.com","ramRole":"ram-***"}
    # 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=oss-demo
    Container.1.VolumeMount.1.MountPath=/data-b
  5. Conecte-se à Instância B e verifique o arquivo no diretório de montagem.

    Como o OSS fornece armazenamento persistente, você ainda pode acessar o arquivo gravado pela Instância A a partir da Instância B, mesmo após a exclusão da Instância A.

    root@test-oss-b:/# cd data-b
    root@test-oss-b:/data-b# ls
    test
    root@test-oss-b:/data-b# cat test
    hello