Docker: Prime istruzioni

Gestione remota di Docker veloce e sicura con Stackhero for Docker

Benvenuto nella documentazione di Stackhero

Stackhero offre una piattaforma Docker cloud CaaS (Containers as a Service) pronta all'uso, progettata per un deployment di container veloce e affidabile:

  • Effettua il deployment in produzione con un semplice docker-compose up. Nessuna configurazione aggiuntiva: avvia semplicemente i tuoi container.
  • Scegli il tuo nome di dominio, automaticamente protetto con HTTPS (ad esempio: https://api.tua-azienda.com, https://www.tua-azienda.com oppure https://backoffice.tua-azienda.com).
  • Approfitta di elevate prestazioni e sicurezza avanzata su un'infrastruttura privata e dedicata.
  • Applica gli aggiornamenti con un solo clic per una manutenzione semplice e senza sforzo.

I tuoi container possono essere operativi in produzione in circa cinque minuti. Stackhero gestisce per te infrastruttura, aggiornamenti e sicurezza, così puoi concentrarti sullo sviluppo delle tue applicazioni. Scopri di più sull'hosting cloud Docker CaaS.

Docker CLI deve essere installato sul vostro computer. Se non lo avete ancora installato, potete scaricarlo dal sito ufficiale di Docker: Docker Desktop.

Con Stackhero for Docker, potete gestire i vostri container da remoto tramite Docker CLI, esattamente come fareste in locale. In questo modo mantenete il vostro flusso di lavoro abituale, ma ora potete eseguire i comandi direttamente sul vostro server Docker pronto per la produzione: in modo sicuro ed efficiente.

I "contesti" Docker rendono tutto questo possibile. I contesti permettono di indicare a Docker CLI dove inviare i comandi: al vostro demone Docker locale oppure alla vostra istanza Stackhero for Docker. Il cambio di contesto è rapido e trasparente.

Per connettervi in modo sicuro alla vostra istanza Stackhero for Docker, è necessario installare i relativi certificati sul vostro computer. Questi certificati gestiscono autenticazione e cifratura, mantenendo la connessione privata e protetta.

Potete utilizzare il seguente comando per scaricare e configurare i certificati:

# HOST è il nome di dominio della vostra istanza Docker (<XXXXXX>.stackhero-network.com).
# SERVICE_ID è l'ID del vostro servizio Stackhero.
# CERTIFICATES_PASSWORD è la password definita nella configurazione Docker sulla dashboard di Stackhero.
(export HOST="<XXXXXX>.stackhero-network.com"
export SERVICE_ID="<SERVICE_ID>"
export CERTIFICATES_PASSWORD="<CERTIFICATES_PASSWORD>"

cd /tmp/ \
  && curl -o certificates.tar https://docker:$CERTIFICATES_PASSWORD@$HOST/stackhero/docker/certificates.tar \
  && tar -xf certificates.tar \
  && (docker context rm -f $HOST 2> /dev/null || true) \
  && docker context create $HOST \
    --description "$SERVICE_ID ($HOST)" \
    --docker "host=tcp://$HOST:2376,ca=ca.pem,cert=cert.pem,key=key.pem")

Questo comando crea un contesto Docker che prende il nome dal dominio del vostro servizio. Potete visualizzare tutti i contesti disponibili con:

docker context ls

Se aggiornate il dominio del vostro servizio, i certificati verranno modificati. Sarà necessario reinstallarli per riconnettervi in modo sicuro.

Per impostazione predefinita, il comando docker ps mostra i container presenti sulla vostra macchina locale. Ad esempio, eseguendo:

docker run --rm alpine wget -q -O - ifconfig.me

verrà restituito il vostro IP pubblico locale, poiché il container viene eseguito sul vostro computer.

Per lavorare da remoto, cambiate il contesto Docker sulla vostra istanza Stackhero for Docker:

docker context use <XXXXXX>.stackhero-network.com

Da questo momento, ogni comando Docker CLI verrà eseguito sul vostro server Docker remoto. Eseguendo lo stesso comando di verifica IP:

docker run --rm alpine wget -q -O - ifconfig.me

verrà mostrato l'IP pubblico della vostra istanza Stackhero for Docker. Questo conferma che i container sono in esecuzione sul server remoto.

Per tornare al demone Docker locale, basta eseguire:

docker context use default

Quando montate un volume in un container remoto, i file disponibili sono quelli presenti sul server remoto, non sulla vostra macchina locale. Ad esempio, docker run -it -v ${PWD}:/mnt alpine monterà la directory remota, non la directory locale corrente.

Anche Docker Compose utilizza il contesto Docker attivo. Una volta impostato il contesto sull'istanza remota con:

docker context use <XXXXXX>.stackhero-network.com

tutti i comandi Docker Compose che eseguirete opereranno sul vostro server remoto. In questo modo, il deployment di applicazioni multi-container sarà semplice come in locale, ma direttamente nel vostro ambiente di produzione.

Cambiare contesto con docker context è utile per l'uso interattivo. Per script o Makefile, la variabile d'ambiente DOCKER_CONTEXT offre un controllo maggiore. Potete trovare ulteriori dettagli nella nostra documentazione avanzata.

Per approfondire l'utilizzo dei contesti Docker, consultate la documentazione ufficiale Docker sui contesti.