Immagina di avviare un cluster Docker Swarm multi-nodo in pochi secondi senza installare nemmeno un byte sul tuo laptop. Per anni ho visto sviluppatori faticare con le installazioni di Docker, alle prese con dipendenze di sistema, errori di permessi e il timore che l’hardware datato non reggesse i carichi di risorse.
Poi ho scoperto Play with Docker, e ha completamente trasformato il modo in cui insegno e imparo la containerizzazione.
Play with Docker è una sandbox gratuita basata su browser che ti dà accesso immediato a macchine virtuali Alpine Linux dove puoi creare ed eseguire container Docker. Che tu sia un junior nel mondo dei dati agli inizi del percorso di containerizzazione o un professionista esperto che vuole testare rapidamente una nuova funzionalità di Docker, PWD offre un ambiente accessibile e senza rischi.
In questo tutorial completo, ti guiderò da zero, dal primo container all’orchestrazione multi-container con Docker Compose. Alla fine, avrai un server web containerizzato in esecuzione senza mai lasciare il browser.
Play with Docker (PWD) è un playground Docker gratuito e temporaneo che gira direttamente nel tuo browser web. Creato dai Docker Captain Marcos Liljedhal e Jonathan Leibiusky, PWD è nato da un progetto di hackathon ed è diventato rapidamente uno strumento essenziale per la community Docker.
Alla base, PWD utilizza la tecnologia Docker-in-Docker (dind), in cui i container Docker girano all’interno di altri container Docker. Questa architettura annidata può sembrare complessa, ma è ciò che ti consente di sperimentare l’intera funzionalità di Docker, incluse feature avanzate come i cluster Swarm multi-nodo, senza toccare la tua macchina locale.
La piattaforma gestisce tutta la complessità dietro le quinte, presentandoti un’interfaccia terminale pulita. Fornisce istanze Alpine Linux, distribuzioni Linux leggere perfette per i carichi di lavoro in container. Alpine è volutamente minimale, con un’immagine di base di circa 5 MB rispetto ai 100+ MB di Ubuntu.
Questa efficienza significa download più rapidi e tempi di avvio più brevi. Ogni istanza offre un terminale completo, dandoti la stessa potenza da riga di comando di un’installazione locale, inclusi shell, Docker CLI e Docker Compose.
PWD elimina le barriere di installazione per i principianti e offre agli utenti avanzati uno spazio per testare funzionalità di orchestrazione come Docker Swarm. Puoi creare cluster multi-nodo, sperimentare configurazioni di rete e testare lo scheduling dei container, il tutto senza la zavorra di gestire macchine virtuali o istanze cloud.
Play With Docker vs Docker Desktop
Ora che è chiaro cosa offre PWD, probabilmente ti chiedi quando usarlo rispetto a installare Docker Desktop in locale. Capire quando usare Play with Docker e quando Docker Desktop ti farà risparmiare tempo e frustrazione.
Play with Docker offre accesso immediato via browser senza installazione, zero consumo di risorse locali e supporto completo a Docker Swarm, tutto completamente gratis. Tuttavia, le sessioni durano solo due ore prima che tutto venga eliminato, le prestazioni sono limitate e non c’è storage persistente dopo la scadenza della sessione.
Nota: La documentazione di PWD indica una durata della sessione di quattro ore, ma quando l’ho testata era in realtà di sole due ore. Sembra che la documentazione non sia aggiornata.
Docker Desktop gira in locale sulla tua macchina, offre storage persistente, prestazioni migliori e integrazione fluida con strumenti di sviluppo come Visual Studio Code. Puoi lavorare su progetti di lungo periodo senza timeouts.
Funzionalità
Play with Docker
Docker Desktop
Configurazione
Zero installazione, via browser
Richiede installazione
Durata sessione
Limite di 2 ore
Nessun limite di tempo
Prestazioni
Risorse condivise, limitate
Risorse di sistema complete
Storage
Temporaneo, eliminato a fine sessione
Persistente su disco locale
Costo
Gratis
Gratis per uso personale; a pagamento per enterprise
Impatto sul sistema
Nessuno (basato su cloud)
Usa CPU e memoria locali
Supporto Swarm
Supporto nativo
Richiede configurazione aggiuntiva
Integrazione IDE
Nessuna
Eccellente (VS Code, ecc.)
Quando usare Play With Docker
Play with Docker dà il meglio nei seguenti scenari:
Test estemporanei
Seguire tutorial
Lavorare su laptop poco potenti o Chromebook
Condividere URL di sessioni live con i teammate per debug o dimostrazioni
Quando usare Docker Desktop
Docker Desktop diventa essenziale per
Sviluppo quotidiano
Integrazione con IDE
Progetti persistenti che durano settimane o mesi
Carichi pesanti che richiedono reti e volumi personalizzati
Iniziare con Play With Docker
Ora che sai quando PWD è lo strumento giusto per le tue esigenze, vediamo come configurarlo ed eseguire la tua prima sessione.
Configurare Play with Docker
Prima di iniziare, ti serve un account Docker Hub. Visita Docker Hub per crearne uno. Se non ce l’hai già, basta fornire email e password.
Accesso a Play with Docker
Vai al sito di Play with Docker e accedi con le tue credenziali Docker Hub. Dopo l’autenticazione, fai clic sul pulsante verde "Start" per generare la tua sessione. In pochi secondi, PWD fornisce un ambiente Alpine Linux nuovo di zecca nel tuo browser con un timer alla rovescia che mostra il tempo rimanente di due ore.
Navigare nella dashboard di Play with Docker
L’interfaccia di PWD è semplice ma potente. Clicca "Add New Instance" per creare nuovi container Alpine Linux. Puoi eseguire fino a 5 istanze contemporaneamente per testare cluster multi-nodo. La finestra principale del terminale offre una bash completa con Docker preinstallato.
Tieni d’occhio il countdown. Quando arriva a zero, tutto viene eliminato e non c’è modo di estendere la sessione.
Dashboard in Play with Docker
Suggerimento: Le operazioni standard di incolla Ctrl+V spesso non funzionano in PWD. Usa Ctrl+Insert per copiare e Shift+Insert per incollare. Prova subito la scorciatoia per evitare frustrazioni.
Operazioni di base in Play With Docker
Con l’ambiente PWD pronto e l’interfaccia familiare, è il momento di eseguire il tuo primo container e imparare i comandi essenziali di Docker.
Eseguire il tuo primo container
Distribuiamo un web server Nginx per capire immagini e container. Esegui questo comando:
Ecco cosa succede: docker run crea e avvia un nuovo container. Il flag -d lo esegue in modalità detached (in background). Il -p 80:80 mappa la porta 80 dell’host sulla porta 80 del container. nginx è il nome dell’immagine Docker.
Pensa a un’immagine Docker come a una ricetta. In questo caso, la ricetta di Nginx. Il container in esecuzione è la torta che sforni da quella ricetta. Puoi creare più torte (container) da una sola ricetta (immagine).
Per gestire il tuo container:
dockerps# Mostra i container in esecuzionedocker stop <id># Ferma un containerdockerrm<id># Rimuove un container fermoOfferto da
Ti bastano i primi caratteri dell’ID del container. Docker capisce a quale ti riferisci.
Port forwarding in Play with Docker
Il port forwarding in PWD funziona in modo diverso rispetto al forwarding locale. Quando esponi una porta, PWD crea automaticamente un URL dinamico per l’accesso.
Dopo aver eseguito il container Nginx, guarda in alto nello schermo PWD sotto IP. Clicca "Open Port" e aggiungi "80". Si aprirà una nuova scheda del browser con un URL univoco come http://ip<numbers>-<session-id>.direct.labs.play-with-docker.com.
Port forwarding in Play with Docker
Qui non stai accedendo a localhost. PWD crea URL speciali che instradano il traffico internet verso il tuo specifico container. Questo significa che puoi condividere questi URL con i colleghi per mostrare il tuo lavoro in tempo reale.
Debug e ispezione
Se le cose non funzionano come previsto, ti serviranno strumenti per indagare cosa succede dentro i container.
Per il troubleshooting, questi comandi ti aiutano a dare un’occhiata dentro i container:
docker logs <container-id># Visualizza l'output del containerdockerps# Mostra lo stato dei container in esecuzione docker inspect <container-id># Ottiene la configurazione JSON dettagliataOfferto da
Esegui docker logs dopo aver cliccato il link della porta 80, e vedrai la richiesta del tuo browser nei log di accesso di Nginx. Questo feedback in tempo reale ti aiuta a capire il flusso delle richieste nella tua applicazione.
Docker logs in Play with Docker
Con queste operazioni base padroneggiate, sei pronto ad andare oltre l’esecuzione di immagini precompilate e iniziare a creare i tuoi container personalizzati.
Creare immagini e gestire i dati in Play With Docker
Ora che abbiamo coperto le operazioni base sui container, vediamo come creare immagini personalizzate. Qui emerge la vera potenza di Docker: la capacità di impacchettare le applicazioni con tutte le dipendenze in immagini portabili e riproducibili.
Scrivere un Dockerfile base
I Dockerfile automatizzano la creazione delle immagini tramite istruzioni testuali. Invece di configurare manualmente un container ogni volta, scrivi un Dockerfile una volta e Docker fa il resto.
Poi clicca sul pulsante "Editor" in PWD e aggiungi una semplice immagine:
FROM alpineCMD ["echo", "Hello DataCamp"]Offerto da
Infine, builda ed esegui il Dockerfile. Il flag -t assegna un nome (o "tag") all’immagine per renderla facile da referenziare. Il . dice a Docker di usare la directory corrente come build context, ovvero il luogo in cui Docker trova il Dockerfile e gli eventuali file necessari. Vedrai Docker eseguire ogni istruzione e mostrare gli ID dei layer.
docker build -t my-first-image .docker run my-first-imageOfferto da
Build di un’immagine Docker in Play with Docker
Vedrai stampato "Hello DataCamp". Congratulazioni! Hai creato la tua prima immagine personalizzata! Questo semplice esempio dimostra il flusso base: scrivere istruzioni, creare un’immagine, eseguire un container.
Ma c’è una sfida cruciale da affrontare: cosa succede ai tuoi dati quando i container si fermano o vengono eliminati?
Persistenza dei dati in Play with Docker
Capire la persistenza dei dati è fondamentale per lavorare efficacemente con i container. Per impostazione predefinita, i container sono effimeri: quando elimini un container, ogni modifica ai file, ogni record di database, ogni entry di log sparisce all’istante.
Potrebbe sembrare un problema, ma in realtà è una delle caratteristiche chiave di Docker. I container effimeri sono facili da sostituire, scalare e fare debug perché sono usa e getta.
Ma che dire dei dati che devi conservare? Qui entrano in gioco i volumi Docker. Un volume è un’area di archiviazione gestita da Docker che esiste al di fuori del filesystem del container. Pensalo come una chiavetta USB che puoi collegare a container diversi. I dati restano sulla chiavetta anche quando la scolleghi da un container e la colleghi a un altro.
Docker container vs. Docker volume
Vediamo come funziona in pratica. Crea e usa un volume:
docker volume create mydata
docker run -it-v mydata:/data alpine shOfferto da
Il flag -v mydata:/data monta il volume mydata nel percorso /data dentro il container. Tutto ciò che scrivi in /data è in realtà archiviato nel volume. Crea un file di test:
echo"This data persists!"> /data/important.txt
echo"Container ID: $(hostname)">> /data/important.txt
exitOfferto da
Il container si è fermato ed è sparito. Ora avvia un container completamente nuovo con lo stesso volume:
docker run -it-v mydata:/data alpine shcat /data/important.txtOfferto da
Persistenza dei dati con Docker volumes
Il file è ancora lì, completo dell’ID del vecchio container! I dati sono sopravvissuti perché erano nel volume, non nel filesystem temporaneo del container. Puoi collegare questo stesso volume a quanti container vuoi, e tutti vedranno gli stessi dati.
Tuttavia, ed è cruciale per chi usa PWD, anche i volumi vengono eliminati quando scadono le due ore di sessione. I volumi persistono all’interno della sessione ma non tra sessioni consecutive.
Capire la persistenza dei dati è fondamentale, ma la maggior parte delle applicazioni reali coinvolge più servizi interconnessi. È qui che Docker Compose diventa essenziale.
Orchestrazione dei container con Docker Compose
Dopo aver padroneggiato i singoli container, è il momento di affrontare applicazioni reali, che raramente sono composte da un solo servizio. Le applicazioni moderne includono in genere più componenti: un frontend web, un backend API, un database, una cache e magari una coda di messaggi. Gestire tutti questi pezzi con comandi docker run separati diventa un incubo di coordinamento.
Perché usare Docker Compose?
Immagina questo scenario: stai distribuendo un’applicazione che richiede un web server, un database PostgreSQL e una cache Redis.
Senza Compose, ti servirebbero tre comandi docker run separati, ciascuno con numerosi flag per rete, mapping delle porte, mount dei volumi e variabili d’ambiente. Dovresti ricordare l’ordine esatto in cui avviarli (prima il database, poi la cache, poi il web server) e, se qualcosa va storto, il debug diventa una caccia tra più finestre di terminale.
Docker Compose risolve elegantemente questa sfida di orchestrazione. Invece di giostrarti tra più comandi, definisci l’intera applicazione multi-container in un unico file YAML chiamato docker-compose.yml. Questo file diventa la fonte di verità dell’architettura della tua app, descrivendo tutti i servizi, le loro configurazioni, come si collegano tra loro e quali volumi usano.
Con Compose, distribuire l’intero stack diventa un solo comando: docker-compose up. Smantellarlo è altrettanto semplice: docker-compose down. Questo approccio dichiarativo rende l’infrastruttura riproducibile. Chiunque può clonare il tuo repository ed eseguire l’intero stack applicativo con un comando, indipendentemente dal sistema operativo o dalla configurazione locale.
La struttura del file Docker Compose
Creiamo un file Docker Compose di base.
Per prima cosa, crea il file nel terminale con touch docker-compose.yml, poi clicca "Editor" in PWD e aggiungi quanto segue al file:
services:web:image: nginx
ports:-"80:80"redis:image: redisOfferto da
La sezione services definisce ogni container. I nomi dei servizi (come web e redis) diventano hostname sulla rete Docker. La chiave image specifica quale immagine di Docker Hub usare. Distribuiscilo:
Con entrambi i container ora in esecuzione, potresti chiederti: come si trovano e comunicano tra loro?
Rete e service discovery
Compose crea automaticamente una rete che collega tutti i servizi, abilitando il service discovery. I container comunicano usando i nomi dei servizi come hostname.
Mettilo alla prova entrando nel container web e facendo ping a Redis:
docker-composeexec web shapt-get update &&apt-getinstall-y iputils-ping
ping redisOfferto da
Ping riusciti dimostrano che i container possono comunicare! Il container web raggiunge redis senza conoscere il suo indirizzo IP. Il DNS interno di Docker risolve automaticamente i nomi dei servizi negli indirizzi corretti dei container.
Troubleshooting e buone pratiche in Play With Docker
Con l’uso di PWD incontrerai sfide comuni. Ecco come gestirle in modo efficace.
“Session expired”
Il limite di due ore è il vincolo maggiore di PWD. Quando il timer arriva a zero, tutto sparisce, incluse istanze e dati. Lavora in modo efficiente preparando il codice in locale prima di incollarlo in PWD, mantenendo dei backup. Pubblica le immagini personalizzate su Docker Hub prima che il timer scada:
docker tag my-first-image yourusername/my-first-image
docker push yourusername/my-first-imageOfferto da
Concentrati su un concetto per sessione invece di costruire sistemi complessi. Il limite di due ore è generoso per imparare, quindi suddividi il lavoro in blocchi discreti.
Errori sulle porte 80/443
A differenza di Docker locale, dove accedi ai container via localhost, PWD utilizza URL dinamici. Non provare localhost:80. Invece, clicca il badge della porta in cima all’interfaccia PWD. Se i badge non compaiono subito, attendi qualche secondo o aggiorna il browser.
Buone pratiche
Inoltre, tieni a mente queste buone pratiche:
Usa immagini base piccole come Alpine (5 MB vs oltre 100 MB di Ubuntu) per risparmiare banda
Non eseguire i container come root se non necessario
Non usare mai credenziali reali in PWD, è una piattaforma pubblica
Scrivi Dockerfile chiari con commenti che spieghino le tue scelte
Mantieni le immagini focalizzate su singole responsabilità.
Conclusione
Hai coperto un bel po’ di terreno in questo tutorial. Hai imparato cos’è Play with Docker, quando usarlo rispetto a Docker Desktop, hai eseguito il tuo primo container, capito il port forwarding e usato comandi di debug. Abbiamo creato immagini personalizzate con Dockerfile, esplorato la persistenza dei dati con i volumi e orchestrato applicazioni multi-container con Docker Compose.
Play with Docker offre un ambiente senza rischi per imparare le basi di Docker senza l’impegno di un’installazione locale. Le competenze che hai praticato — scrivere Dockerfile, gestire container e configurare reti — si traducono direttamente nell’uso di Docker nel mondo reale.
Ora che hai compreso questi fondamentali, installa Docker Desktop in locale. Sebbene PWD sia eccellente per l’apprendimento e i test rapidi, per lo sviluppo serio servono persistenza, prestazioni e integrazione con gli strumenti che solo l’installazione locale può offrire. Tutto ciò che hai imparato in PWD si applica direttamente a Docker Desktop: i comandi sono identici e i concetti gli stessi.
Continua a costruire su queste basi. Sperimenta immagini di base diverse, esplora le funzionalità di rete di Docker e fai pratica nello scrivere Dockerfile pronti per la produzione. Continua a imparare, sperimentare e costruire.
Devo installare Docker per usare Play with Docker?⌄
Nessuna installazione richiesta! Play with Docker funziona interamente nel tuo browser web. Ti serve solo un account gratuito Docker Hub per accedere. PWD fornisce un ambiente Alpine Linux completo con Docker preinstallato, accessibile da qualsiasi dispositivo con connessione internet.
Quanto durano le sessioni di Play with Docker?⌄
Ogni sessione di Play with Docker dura esattamente 2 ore prima che tutto venga eliminato automaticamente. Puoi creare fino a 5 istanze per sessione. Per conservare le immagini personalizzate oltre la sessione, pubblicale su Docker Hub prima che il timer scada.
Posso accedere alle mie applicazioni containerizzate dall’esterno di Play with Docker?⌄
Certo! Quando esponi una porta, Play with Docker genera automaticamente un URL univoco. Clicca il pulsante "OPEN PORT" per accedere alle tue applicazioni. Puoi condividere questi URL con i colleghi per collaborare in tempo reale.
Qual è la differenza tra Play with Docker e Docker Desktop?⌄
Play with Docker è basato su browser, gratuito, non richiede installazione, quindi è perfetto per imparare o fare test rapidi, ma le sessioni durano solo 2 ore. Docker Desktop gira in locale sulla tua macchina e offre storage persistente, prestazioni migliori e integrazione con l’IDE, risultando ideale per il lavoro quotidiano di sviluppo e i progetti a lungo termine.
Posso usare Docker Compose in Play with Docker?⌄
Assolutamente! Docker Compose è preinstallato in PWD. Puoi creare file docker-compose.yml usando l’editor integrato ed eseguire applicazioni multi-container con docker-compose up. PWD gestisce automaticamente la rete tra i servizi, rendendolo perfetto per testare architetture a microservizi o imparare l’orchestrazione dei container.
Come fondatore di Martin Data Solutions e Data Scientist/ML & AI Engineer freelance, porto un portfolio vario che include Regression, Classification, NLP, LLM, RAG, reti neurali, metodi ensemble e computer vision.
Ho sviluppato con successo diversi progetti ML end-to-end, includendo data cleaning, analytics, modellazione e deployment su AWS e GCP, offrendo soluzioni efficaci e scalabili.
Ho realizzato applicazioni web interattive e scalabili con Streamlit e Gradio per casi d’uso in settori diversi.
Ho insegnato e fatto mentoring a studenti di data science e analytics, supportandone la crescita professionale con approcci di apprendimento personalizzati.
Ho progettato contenuti didattici per applicazioni di retrieval-augmented generation (RAG) su misura per le esigenze enterprise.
Ho scritto articoli tecnici di grande impatto su AI & ML, trattando temi come MLOps, database vettoriali e LLM, ottenendo un notevole coinvolgimento.
In ogni progetto che affronto, applico pratiche aggiornate di ingegneria del software e DevOps, come CI/CD, linting del codice, formattazione, monitoraggio dei modelli, tracciamento degli esperimenti e gestione robusta degli errori. Mi impegno a fornire soluzioni complete, trasformando gli insight dai dati in strategie pratiche che aiutano le aziende a crescere e a sfruttare al meglio data science, machine learning e AI.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Immagina di avviare un cluster Docker Swarm multi-nodo in pochi secondi senza installare nemmeno un byte sul tuo laptop. Per anni ho visto sviluppatori faticare con le installazioni di Docker, alle prese con dipendenze di sistema, errori di permessi e il timore che l’hardware datato non reggesse i carichi di risorse.
Poi ho scoperto Play with Docker, e ha completamente trasformato il modo in cui insegno e imparo la containerizzazione.
Play with Docker è una sandbox gratuita basata su browser che ti dà accesso immediato a macchine virtuali Alpine Linux dove puoi creare ed eseguire container Docker. Che tu sia un junior nel mondo dei dati agli inizi del percorso di containerizzazione o un professionista esperto che vuole testare rapidamente una nuova funzionalità di Docker, PWD offre un ambiente accessibile e senza rischi.
In questo tutorial completo, ti guiderò da zero, dal primo container all’orchestrazione multi-container con Docker Compose. Alla fine, avrai un server web containerizzato in esecuzione senza mai lasciare il browser.
Se sei nuovo su Docker e sui suoi concetti, ti consiglio di seguire il nostro corso Introduzione a Docker o studiare Concetti di containerizzazione e virtualizzazione.
Che cos’è Play With Docker?
Play with Docker (PWD) è un playground Docker gratuito e temporaneo che gira direttamente nel tuo browser web. Creato dai Docker Captain Marcos Liljedhal e Jonathan Leibiusky, PWD è nato da un progetto di hackathon ed è diventato rapidamente uno strumento essenziale per la community Docker.
Alla base, PWD utilizza la tecnologia Docker-in-Docker (dind), in cui i container Docker girano all’interno di altri container Docker. Questa architettura annidata può sembrare complessa, ma è ciò che ti consente di sperimentare l’intera funzionalità di Docker, incluse feature avanzate come i cluster Swarm multi-nodo, senza toccare la tua macchina locale.
La piattaforma gestisce tutta la complessità dietro le quinte, presentandoti un’interfaccia terminale pulita. Fornisce istanze Alpine Linux, distribuzioni Linux leggere perfette per i carichi di lavoro in container. Alpine è volutamente minimale, con un’immagine di base di circa 5 MB rispetto ai 100+ MB di Ubuntu.
Questa efficienza significa download più rapidi e tempi di avvio più brevi. Ogni istanza offre un terminale completo, dandoti la stessa potenza da riga di comando di un’installazione locale, inclusi shell, Docker CLI e Docker Compose.
PWD elimina le barriere di installazione per i principianti e offre agli utenti avanzati uno spazio per testare funzionalità di orchestrazione come Docker Swarm. Puoi creare cluster multi-nodo, sperimentare configurazioni di rete e testare lo scheduling dei container, il tutto senza la zavorra di gestire macchine virtuali o istanze cloud.
Play With Docker vs Docker Desktop
Ora che è chiaro cosa offre PWD, probabilmente ti chiedi quando usarlo rispetto a installare Docker Desktop in locale. Capire quando usare Play with Docker e quando Docker Desktop ti farà risparmiare tempo e frustrazione.
Play with Docker offre accesso immediato via browser senza installazione, zero consumo di risorse locali e supporto completo a Docker Swarm, tutto completamente gratis. Tuttavia, le sessioni durano solo due ore prima che tutto venga eliminato, le prestazioni sono limitate e non c’è storage persistente dopo la scadenza della sessione.
Nota: La documentazione di PWD indica una durata della sessione di quattro ore, ma quando l’ho testata era in realtà di sole due ore. Sembra che la documentazione non sia aggiornata.
Docker Desktop gira in locale sulla tua macchina, offre storage persistente, prestazioni migliori e integrazione fluida con strumenti di sviluppo come Visual Studio Code. Puoi lavorare su progetti di lungo periodo senza timeouts.
Funzionalità
Play with Docker
Docker Desktop
Configurazione
Zero installazione, via browser
Richiede installazione
Durata sessione
Limite di 2 ore
Nessun limite di tempo
Prestazioni
Risorse condivise, limitate
Risorse di sistema complete
Storage
Temporaneo, eliminato a fine sessione
Persistente su disco locale
Costo
Gratis
Gratis per uso personale; a pagamento per enterprise
Impatto sul sistema
Nessuno (basato su cloud)
Usa CPU e memoria locali
Supporto Swarm
Supporto nativo
Richiede configurazione aggiuntiva
Integrazione IDE
Nessuna
Eccellente (VS Code, ecc.)
Quando usare Play With Docker
Play with Docker dà il meglio nei seguenti scenari:
Quando usare Docker Desktop
Docker Desktop diventa essenziale per
Iniziare con Play With Docker
Ora che sai quando PWD è lo strumento giusto per le tue esigenze, vediamo come configurarlo ed eseguire la tua prima sessione.
Configurare Play with Docker
Prima di iniziare, ti serve un account Docker Hub. Visita Docker Hub per crearne uno. Se non ce l’hai già, basta fornire email e password.
Accesso a Play with Docker
Vai al sito di Play with Docker e accedi con le tue credenziali Docker Hub. Dopo l’autenticazione, fai clic sul pulsante verde "Start" per generare la tua sessione. In pochi secondi, PWD fornisce un ambiente Alpine Linux nuovo di zecca nel tuo browser con un timer alla rovescia che mostra il tempo rimanente di due ore.
Navigare nella dashboard di Play with Docker
L’interfaccia di PWD è semplice ma potente. Clicca "Add New Instance" per creare nuovi container Alpine Linux. Puoi eseguire fino a 5 istanze contemporaneamente per testare cluster multi-nodo. La finestra principale del terminale offre una bash completa con Docker preinstallato.
Tieni d’occhio il countdown. Quando arriva a zero, tutto viene eliminato e non c’è modo di estendere la sessione.
Dashboard in Play with Docker
Suggerimento: Le operazioni standard di incolla
Ctrl+Vspesso non funzionano in PWD. UsaCtrl+Insertper copiare eShift+Insertper incollare. Prova subito la scorciatoia per evitare frustrazioni.Operazioni di base in Play With Docker
Con l’ambiente PWD pronto e l’interfaccia familiare, è il momento di eseguire il tuo primo container e imparare i comandi essenziali di Docker.
Eseguire il tuo primo container
Distribuiamo un web server Nginx per capire immagini e container. Esegui questo comando:
Ecco cosa succede:
docker runcrea e avvia un nuovo container. Il flag-dlo esegue in modalità detached (in background). Il-p 80:80mappa la porta 80 dell’host sulla porta 80 del container.nginxè il nome dell’immagine Docker.Pensa a un’immagine Docker come a una ricetta. In questo caso, la ricetta di Nginx. Il container in esecuzione è la torta che sforni da quella ricetta. Puoi creare più torte (container) da una sola ricetta (immagine).
Per gestire il tuo container:
Ti bastano i primi caratteri dell’ID del container. Docker capisce a quale ti riferisci.
Port forwarding in Play with Docker
Il port forwarding in PWD funziona in modo diverso rispetto al forwarding locale. Quando esponi una porta, PWD crea automaticamente un URL dinamico per l’accesso.
Dopo aver eseguito il container Nginx, guarda in alto nello schermo PWD sotto IP. Clicca "Open Port" e aggiungi "80". Si aprirà una nuova scheda del browser con un URL univoco come
http://ip<numbers>-<session-id>.direct.labs.play-with-docker.com.Port forwarding in Play with Docker
Qui non stai accedendo a localhost. PWD crea URL speciali che instradano il traffico internet verso il tuo specifico container. Questo significa che puoi condividere questi URL con i colleghi per mostrare il tuo lavoro in tempo reale.
Debug e ispezione
Se le cose non funzionano come previsto, ti serviranno strumenti per indagare cosa succede dentro i container.
Per il troubleshooting, questi comandi ti aiutano a dare un’occhiata dentro i container:
Esegui
docker logsdopo aver cliccato il link della porta 80, e vedrai la richiesta del tuo browser nei log di accesso di Nginx. Questo feedback in tempo reale ti aiuta a capire il flusso delle richieste nella tua applicazione.Docker logs in Play with Docker
Con queste operazioni base padroneggiate, sei pronto ad andare oltre l’esecuzione di immagini precompilate e iniziare a creare i tuoi container personalizzati.
Creare immagini e gestire i dati in Play With Docker
Ora che abbiamo coperto le operazioni base sui container, vediamo come creare immagini personalizzate. Qui emerge la vera potenza di Docker: la capacità di impacchettare le applicazioni con tutte le dipendenze in immagini portabili e riproducibili.
Scrivere un Dockerfile base
I Dockerfile automatizzano la creazione delle immagini tramite istruzioni testuali. Invece di configurare manualmente un container ogni volta, scrivi un Dockerfile una volta e Docker fa il resto.
Crea un Dockerfile in Play with Docker
Per prima cosa, crea il Dockerfile nel terminale:
Poi clicca sul pulsante "Editor" in PWD e aggiungi una semplice immagine:
Infine, builda ed esegui il Dockerfile. Il flag
-tassegna un nome (o "tag") all’immagine per renderla facile da referenziare. Il.dice a Docker di usare la directory corrente come build context, ovvero il luogo in cui Docker trova il Dockerfile e gli eventuali file necessari. Vedrai Docker eseguire ogni istruzione e mostrare gli ID dei layer.Build di un’immagine Docker in Play with Docker
Vedrai stampato "Hello DataCamp". Congratulazioni! Hai creato la tua prima immagine personalizzata! Questo semplice esempio dimostra il flusso base: scrivere istruzioni, creare un’immagine, eseguire un container.
Ma c’è una sfida cruciale da affrontare: cosa succede ai tuoi dati quando i container si fermano o vengono eliminati?
Persistenza dei dati in Play with Docker
Capire la persistenza dei dati è fondamentale per lavorare efficacemente con i container. Per impostazione predefinita, i container sono effimeri: quando elimini un container, ogni modifica ai file, ogni record di database, ogni entry di log sparisce all’istante.
Potrebbe sembrare un problema, ma in realtà è una delle caratteristiche chiave di Docker. I container effimeri sono facili da sostituire, scalare e fare debug perché sono usa e getta.
Ma che dire dei dati che devi conservare? Qui entrano in gioco i volumi Docker. Un volume è un’area di archiviazione gestita da Docker che esiste al di fuori del filesystem del container. Pensalo come una chiavetta USB che puoi collegare a container diversi. I dati restano sulla chiavetta anche quando la scolleghi da un container e la colleghi a un altro.
Docker container vs. Docker volume
Vediamo come funziona in pratica. Crea e usa un volume:
Il flag
-v mydata:/datamonta il volumemydatanel percorso/datadentro il container. Tutto ciò che scrivi in/dataè in realtà archiviato nel volume. Crea un file di test:Il container si è fermato ed è sparito. Ora avvia un container completamente nuovo con lo stesso volume:
Persistenza dei dati con Docker volumes
Il file è ancora lì, completo dell’ID del vecchio container! I dati sono sopravvissuti perché erano nel volume, non nel filesystem temporaneo del container. Puoi collegare questo stesso volume a quanti container vuoi, e tutti vedranno gli stessi dati.
Tuttavia, ed è cruciale per chi usa PWD, anche i volumi vengono eliminati quando scadono le due ore di sessione. I volumi persistono all’interno della sessione ma non tra sessioni consecutive.
Capire la persistenza dei dati è fondamentale, ma la maggior parte delle applicazioni reali coinvolge più servizi interconnessi. È qui che Docker Compose diventa essenziale.
Orchestrazione dei container con Docker Compose
Dopo aver padroneggiato i singoli container, è il momento di affrontare applicazioni reali, che raramente sono composte da un solo servizio. Le applicazioni moderne includono in genere più componenti: un frontend web, un backend API, un database, una cache e magari una coda di messaggi. Gestire tutti questi pezzi con comandi
docker runseparati diventa un incubo di coordinamento.Perché usare Docker Compose?
Immagina questo scenario: stai distribuendo un’applicazione che richiede un web server, un database PostgreSQL e una cache Redis.
Senza Compose, ti servirebbero tre comandi
docker runseparati, ciascuno con numerosi flag per rete, mapping delle porte, mount dei volumi e variabili d’ambiente. Dovresti ricordare l’ordine esatto in cui avviarli (prima il database, poi la cache, poi il web server) e, se qualcosa va storto, il debug diventa una caccia tra più finestre di terminale.Docker Compose risolve elegantemente questa sfida di orchestrazione. Invece di giostrarti tra più comandi, definisci l’intera applicazione multi-container in un unico file YAML chiamato
docker-compose.yml. Questo file diventa la fonte di verità dell’architettura della tua app, descrivendo tutti i servizi, le loro configurazioni, come si collegano tra loro e quali volumi usano.Con Compose, distribuire l’intero stack diventa un solo comando:
docker-compose up. Smantellarlo è altrettanto semplice:docker-compose down. Questo approccio dichiarativo rende l’infrastruttura riproducibile. Chiunque può clonare il tuo repository ed eseguire l’intero stack applicativo con un comando, indipendentemente dal sistema operativo o dalla configurazione locale.La struttura del file Docker Compose
Creiamo un file Docker Compose di base.
Per prima cosa, crea il file nel terminale con
touch docker-compose.yml, poi clicca "Editor" in PWD e aggiungi quanto segue al file:La sezione services definisce ogni container. I nomi dei servizi (come web e redis) diventano hostname sulla rete Docker. La chiave image specifica quale immagine di Docker Hub usare. Distribuiscilo:
Con entrambi i container ora in esecuzione, potresti chiederti: come si trovano e comunicano tra loro?
Rete e service discovery
Compose crea automaticamente una rete che collega tutti i servizi, abilitando il service discovery. I container comunicano usando i nomi dei servizi come hostname.
Mettilo alla prova entrando nel container web e facendo ping a Redis:
Ping riusciti dimostrano che i container possono comunicare! Il container
webraggiungeredissenza conoscere il suo indirizzo IP. Il DNS interno di Docker risolve automaticamente i nomi dei servizi negli indirizzi corretti dei container.Troubleshooting e buone pratiche in Play With Docker
Con l’uso di PWD incontrerai sfide comuni. Ecco come gestirle in modo efficace.
“Session expired”
Il limite di due ore è il vincolo maggiore di PWD. Quando il timer arriva a zero, tutto sparisce, incluse istanze e dati. Lavora in modo efficiente preparando il codice in locale prima di incollarlo in PWD, mantenendo dei backup. Pubblica le immagini personalizzate su Docker Hub prima che il timer scada:
Concentrati su un concetto per sessione invece di costruire sistemi complessi. Il limite di due ore è generoso per imparare, quindi suddividi il lavoro in blocchi discreti.
Errori sulle porte 80/443
A differenza di Docker locale, dove accedi ai container via localhost, PWD utilizza URL dinamici. Non provare
localhost:80. Invece, clicca il badge della porta in cima all’interfaccia PWD. Se i badge non compaiono subito, attendi qualche secondo o aggiorna il browser.Buone pratiche
Inoltre, tieni a mente queste buone pratiche:
Conclusione
Hai coperto un bel po’ di terreno in questo tutorial. Hai imparato cos’è Play with Docker, quando usarlo rispetto a Docker Desktop, hai eseguito il tuo primo container, capito il port forwarding e usato comandi di debug. Abbiamo creato immagini personalizzate con Dockerfile, esplorato la persistenza dei dati con i volumi e orchestrato applicazioni multi-container con Docker Compose.
Play with Docker offre un ambiente senza rischi per imparare le basi di Docker senza l’impegno di un’installazione locale. Le competenze che hai praticato — scrivere Dockerfile, gestire container e configurare reti — si traducono direttamente nell’uso di Docker nel mondo reale.
Ora che hai compreso questi fondamentali, installa Docker Desktop in locale. Sebbene PWD sia eccellente per l’apprendimento e i test rapidi, per lo sviluppo serio servono persistenza, prestazioni e integrazione con gli strumenti che solo l’installazione locale può offrire. Tutto ciò che hai imparato in PWD si applica direttamente a Docker Desktop: i comandi sono identici e i concetti gli stessi.
Continua a costruire su queste basi. Sperimenta immagini di base diverse, esplora le funzionalità di rete di Docker e fai pratica nello scrivere Dockerfile pronti per la produzione. Continua a imparare, sperimentare e costruire.
Il nostro Containerization and Virtualization with Docker and Kubernetes fornisce un’ottima base per lavorare con i container. Per continuare a imparare, ti consiglio anche queste risorse: