Este documento descreve como ativar a virtualização aninhada numa instância de máquina virtual (VM) e como confirmar que pode criar uma VM aninhada. Ative a virtualização aninhada numa VM através de um dos seguintes métodos:
- Recomendado. Ative a virtualização aninhada diretamente numa VM nova ou existente definindo o campo - enableNestedVirtualizationcomo- trueao criar a VM ou atualizando a VM. Este é o método recomendado porque não requer que crie uma imagem personalizada nem use a chave de licença especial.
- Ative a virtualização aninhada usando a chave de licença especial. Para tal, crie um disco de arranque, crie uma imagem personalizada com a chave de licença especial de virtualização aninhada e, em seguida, crie uma VM que use a imagem personalizada. 
Antes de começar
- 
  
  Se ainda não o tiver feito, configure a autenticação.
  A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
  
   
   
     
   
  
   
   
     
   
  
   
   
     
   
  
 
 
 
  
    
      Select the tab for how you plan to use the samples on this page: gcloud- 
 
 
  
  
   
   
  
   
   
  
   
   
     
   
  
  
   
   
  
   
   
  
   
   
  
 
 
   
   
      Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando: gcloud initSe estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada. 
- Set a default region and zone.
 RESTPara usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando: gcloud initSe estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada. Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação. Ative a virtualização aninhada diretamente numa nova VMAtive a virtualização aninhada diretamente numa VM através do seguinte procedimento. gcloudCrie uma VM L1 com a virtualização aninhada ativada através do seguinte gcloud compute instances createcomando:gcloud compute instances create VM_NAME \ --enable-nested-virtualization \ --zone=ZONE \ --min-cpu-platform="Intel Haswell" Substitua o seguinte: - VM_NAME: o nome da nova VM de nível 1 com a virtualização aninhada ativada
- ZONE: a zona para a nova VM L1 com a virtualização aninhada ativada
 RESTCrie uma VM de nível 1 com a virtualização aninhada ativada através do seguinte instances.insertmétodo:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "name": "VM_NAME", ... "minCpuPlatform": "Intel Haswell", "advancedMachineFeatures": { "enableNestedVirtualization": true }, ... }Substitua o seguinte: - PROJECT_ID: o ID do projeto
- ZONE: a zona para a nova VM L1 com a virtualização aninhada ativada
- VM_NAME: o nome da nova VM de nível 1 com a virtualização aninhada ativada
 Ative a virtualização aninhada diretamente numa VM existenteAtive a virtualização aninhada numa VM existente através do seguinte procedimento. gcloud- Exporte as propriedades da VM através do seguinte - gcloud compute instances exportcomando:- gcloud compute instances export VM_NAME \ --destination=YAML_FILE_PATH \ --zone=ZONE - Substitua o seguinte: - VM_NAME: o nome da VM a partir da qual exportar propriedades
- YAML_FILE_PATH: o caminho e o nome do ficheiro de um ficheiro .yaml no qual guardar os dados de configuração exportados
- ZONE: a zona que contém a VM
 
- No ficheiro de configuração da VM que foi guardado em FILE_PATH, atualize o valor de - enableNestedVirtualization. Se o valor não estiver no ficheiro, adicione o seguinte:- advancedMachineFeatures: enableNestedVirtualization: true 
- Atualize a VM com o valor de - enableNestedVirtualizationatravés do seguinte comando- gcloud compute instances update-from-file:- gcloud compute instances update-from-file VM_NAME \ --source=FILE_PATH \ --most-disruptive-allowed-action=RESTART \ --zone=ZONE - Substitua o seguinte: - VM_NAME: o nome da VM a atualizar
- FILE_PATH: o caminho para o ficheiro de configuração da VM atualizado
- ZONE: a zona que contém a VM a atualizar
 
 RESTAtualize o valor de enableNestedVirtualizationatravés do seguinteinstances.updatemétodo:PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART { ⋮ "advanced_machine_features": { ⋮ "enableNestedVirtualization": "true" }, ⋮ }Substitua o seguinte: - PROJECT_ID: o ID do projeto
- ZONE: a zona que contém a VM
- VM_NAME: o nome da VM a partir da qual exportar as propriedades
 Ative a virtualização aninhada através da chave de licença especialPode ativar a virtualização aninhada na VM criando uma imagem personalizada com uma chave de licença especial que ativa o VMX na VM de nível 1. A chave de licença não incorre em custos adicionais. - Crie um disco de arranque a partir de uma imagem pública ou de uma imagem personalizada. O exemplo seguinte usa - debian-cloudpara o projeto de imagem e- debian-10para a família de imagens. Se já tiver uma instância de VM com um disco existente, pode ignorar este passo.- gcloud- gcloud compute disks create DISK_NAME \ --zone=ZONE \ --image-project=debian-cloud \ --image-family=debian-10 - Substitua o seguinte: - DISK_NAME: o nome do novo disco
- ZONE: a zona na qual criar o disco
 - REST- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks { ... "name": "DISK_NAME", "sourceImage": "projects/debian-cloud/global/images/family/debian-10", ... }- Substitua o seguinte: - PROJECT_ID: o ID do projeto
- ZONE: a zona na qual criar o disco
- DISK_NAME: o nome do novo disco
 
- Crie uma imagem personalizada com a chave de licença especial necessária para a virtualização aninhada. - gcloud- gcloud compute images create IMAGE_NAME \ --source-disk DISK_NAME \ --source-disk-zone ZONE \ --licenses "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx" - Substitua o seguinte: - IMAGE_NAME: o nome da nova imagem
- DISK_NAME: o nome do disco criado anteriormente
- ZONE: a zona onde criar a imagem
 - REST- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { ... "licenses": ["projects/vm-options/global/licenses/enable-vmx"], "name": "IMAGE_NAME", "sourceDisk": "zones/ZONE/disks/DISK_NAME", ... }- Substitua o seguinte: - PROJECT_ID: o ID do projeto
- IMAGE_NAME: o nome da nova imagem
- ZONE: a zona onde criar a imagem
- DISK_NAME: o nome do disco criado anteriormente
 
- Opcionalmente, elimine o disco de origem após criar a imagem com a licença especial. - gcloud- gcloud compute disks delete DISK_NAME --zone=ZONE - Substitua o seguinte: - DISK_NAME: o nome do disco a eliminar
- ZONE: a zona que contém o disco a eliminar
 - REST- DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME - Substitua o seguinte: - PROJECT_ID: o ID do projeto
- ZONE: a zona que contém o disco a eliminar
- DISK_NAME: o nome do disco a eliminar
 
- Crie uma VM que use a nova imagem com a licença especial. A plataforma mínima da CPU tem de ser - "Intel Haswell".- gcloud- gcloud compute instances create VM_NAME \ --zone=ZONE \ --min-cpu-platform "Intel Haswell" \ --image IMAGE_NAME- Substitua o seguinte: - VM_NAME: o nome da VM
- ZONE: a zona na qual criar a VM
- IMAGE_NAME: o nome da imagem criada anteriormente
 - REST- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "name": "VM_NAME", "minCpuPlatform": "Intel Haswell", "disks": [ { "initializeParams": { "sourceImage": "IMAGE_NAME" } } ] ... }- Substitua o seguinte: - PROJECT_ID: o ID do projeto
- VM_NAME: o nome da VM
- ZONE: a zona na qual criar a VM
- IMAGE_NAME: o nome da imagem criada anteriormente
 
 Confirme se a virtualização aninhada está ativada na VM- Estabeleça ligação à instância de VM. - gcloud compute ssh VM_NAME - Substitua - VM_NAMEpelo nome da VM à qual se quer ligar.
- Confirme se a virtualização aninhada está ativada. Qualquer resposta que não seja - 0confirma que a virtualização aninhada está ativada.- grep -cw vmx /proc/cpuinfo 
 O que se segue?Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas. Última atualização 2025-10-19 UTC. -