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.
Come utilizzare Docker CLI da remoto
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.
Installare i certificati Docker
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.
Eseguire container Docker da remoto
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 alpinemonterà la directory remota, non la directory locale corrente.
Deployment con Docker Compose
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'ambienteDOCKER_CONTEXToffre 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.