Passa al contenuto principale
Versione: 1.0.0

Docker Host su Aruba Cloud

Esegui il provisioning di una VM CloudServer con Docker CE e Docker Compose pronti all'uso. È la base per eseguire qualsiasi workload containerizzato su Aruba Cloud quando un esempio più specifico non soddisfa le tue esigenze.

Versione provider: arubacloud/arubacloud ~> 1.0 | Terraform: ≥ 1.9


Introduzione​

Questo esempio crea una VM Ubuntu 22.04 pulita con Docker Engine installato dal repository APT ufficiale di Docker. Puoi immediatamente scaricare immagini, eseguire container e usare Docker Compose — tutto tramite SSH o un contesto Docker remoto.

Usa questo come punto di partenza per:

  • Eseguire stack Docker Compose non coperti dagli altri esempi
  • Testare immagini container in un ambiente Aruba Cloud isolato
  • Configurare un agente di build Docker privato

Panoramica dell'architettura​


Infrastruttura creata​

RisorsaPattern del nomeDescrizione
arubacloud_projectdocker-prodContenitore del progetto
arubacloud_vpcdocker-prod-vpcVPC
arubacloud_subnetdocker-prod-subnetSubnet
arubacloud_securitygroupdocker-prod-vm-sgSecurity group (solo SSH)
arubacloud_elasticipdocker-prod-vm-eipIP pubblico
arubacloud_blockstoragedocker-prod-bootDisco di boot da 50 GB
arubacloud_keypairdocker-prod-keypairChiave SSH
arubacloud_cloudserverdocker-prod-vmVM

Dimensionamento VM​

Caso d'usovCPURAMDiscoFlavor
Container leggeri / CI24 GB50 GBCSO2A4 (default)
Workload medi48 GB80 GBCSO4A8
Build pesanti816 GB100 GBCSO8A16

Costo mensile stimato​

RisorsaSpecificheCosto stimato/mese
VM CloudServerCSO2A4 — 2 vCPU / 4 GB~€20
Disco di boot50 GB~€7
Elastic IP—~€5
Totale~€32/mese

Variabili​

Obbligatorie​

VariabileDescrizione
arubacloud_client_idClient ID OAuth2
arubacloud_client_secretClient secret OAuth2
ssh_public_keyContenuto della chiave pubblica SSH

Opzionali​

VariabileDefaultDescrizione
app_name"docker"Prefisso dei nomi delle risorse
environment"prod"Etichetta dell'ambiente
location"ITBG-Bergamo"Regione
zone"ITBG-1"Zona di disponibilità
vm_flavor"CSO2A4"Flavor VM
vm_disk_size_gb50Dimensione disco in GB
ssh_cidr"0.0.0.0/0"CIDR sorgente SSH — limita al tuo IP
docker_users[]Utenti aggiuntivi da aggiungere al gruppo docker
billing_period"Hour"Periodo di fatturazione

Deployment​

cd terraform-arubacloud-examples/docker-host
cp terraform.tfvars.example terraform.tfvars
# Modifica terraform.tfvars
terraform init && terraform apply

Dopo il deployment:

# SSH nell'host
ssh ubuntu@$(terraform output -raw public_ip)

# Oppure usa un contesto Docker remoto (senza sessione SSH)
eval "$(terraform output -raw docker_context_command)"
docker context use aruba-docker
docker ps

Distruzione​

terraform destroy

Raccomandazioni di sicurezza​

  1. Non esporre mai il socket Docker pubblicamente. L'esempio apre solo SSH. Usa l'SSH tunneling (-L /tmp/docker.sock:/var/run/docker.sock) o un contesto Docker via SSH per l'accesso remoto.
  2. Limita SSH al tuo IP. Imposta ssh_cidr = "your.ip/32".
  3. Usa Docker rootless per un isolamento extra: dockerd-rootless-setuptool.sh install.

Risoluzione dei problemi​

docker: permission denied​

Disconnettiti e riconnettiti — le modifiche all'appartenenza ai gruppi richiedono una nuova sessione:

exit
ssh ubuntu@$(terraform output -raw public_ip)

Il daemon Docker non si è avviato​

sudo systemctl status docker
sudo journalctl -u docker -n 50

Riferimenti​