Vai al contenuto principale

Play with Docker: esegui container gratis nel tuo browser

Scopri come usare Docker nel browser con Play with Docker. Esegui container, crea Dockerfile e usa Docker Compose in questo playground Docker online.
· 12 min leggi

Scopri con l'IA

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: 

  • 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

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.

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

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:

docker run -d -p 80:80 nginx

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:

docker ps              # Mostra i container in esecuzione
docker stop <id>       # Ferma un container
docker rm <id>         # Rimuove un container fermo

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

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 container
docker ps                          # Mostra lo stato dei container in esecuzione  
docker inspect <container-id>      # Ottiene la configurazione JSON dettagliata

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

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

Crea un Dockerfile in Play with Docker

Per prima cosa, crea il Dockerfile nel terminale:

touch Dockerfile

Poi clicca sul pulsante "Editor" in PWD e aggiungi una semplice immagine:

FROM alpine
CMD ["echo", "Hello DataCamp"]

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-image

Build di un'immagine Docker in Play with Docker

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

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 sh

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
exit

Il container si è fermato ed è sparito. Ora avvia un container completamente nuovo con lo stesso volume:

docker run -it -v mydata:/data alpine sh
cat /data/important.txt

Persistenza dei dati con Docker Volumes

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: redis

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:

docker-compose up -d

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-compose exec web sh
apt-get update && apt-get install -y iputils-ping
ping redis

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-image

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. 

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:

Play with Docker: domande frequenti

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.

Benito Martin

Autore

Benito Martin

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.

Argomenti

Correlato