Come aggiornare in sicurezza le app Docker basate su PHP sul tuo server domestico

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Una patch di sicurezza PHP all'interno di un container arriva di norma tramite un'immagine ricreata. Scaricare quell'immagine e metterla in servizio sono passaggi distinti. Il piano di aggiornamento deve anche proteggere il database e i file persistenti che sopravvivono al container.

Esegui il backup dei dati dell'applicazione, del relativo database, se presente, e della configurazione prima di modificare l'immagine. Scarica una versione corretta e supportata, ricrea il servizio, verifica il container sostitutivo e controlla l'azione utente più importante prima di registrare l'aggiornamento come completato.

1. Registra la distribuzione attuale

Conferma la directory del progetto e i nomi dei servizi con docker compose ps. Registra i tag e gli ID delle immagini attuali con docker compose images, oltre alla posizione dei volumi persistenti e dei dati del database. Conserva una copia protetta della configurazione Compose senza esporre segreti nei log condivisi.

Controlla le note di rilascio dell'immagine di destinazione per verificare la correzione PHP. Un tag denominato latest non dimostra la presenza di una patch specifica. Se usi un digest fissato, deve essere sostituito con il digest verificato della nuova versione.

2. Esegui un backup coerente

Usa il metodo di backup documentato dall'applicazione. Conserva la configurazione, i file e un backup del database riferiti a un punto di ripristino coerente. Se l'applicazione lo richiede, coordina la sospensione delle scritture o l'attivazione della modalità di manutenzione. Una copia del file system della directory di un database in esecuzione non è sempre un sostituto valido di un backup del database.

Conserva la copia di ripristino in un luogo non accessibile in scrittura dall'applicazione e assicurati di sapere come ripristinarla. Conserva la configurazione precedente e il riferimento all'immagine, ma ricorda che ripristinare una vecchia immagine vulnerabile non significa rimetterla direttamente su Internet.

3. Scarica e ricrea il servizio previsto

Per un'immagine pubblicata dal manutentore, aggiorna il riferimento all'immagine del servizio a una versione fissa compatibile, quindi usa questo esempio dalla directory corretta del progetto. Sostituisci app con il nome del servizio della tua applicazione PHP:

docker compose pull app
docker compose up -d --no-deps app
docker compose ps
docker compose exec -T app php -v

Docker documenta che pull scarica le immagini senza avviare i container; up applica le modifiche all'immagine o alla configurazione ricreando i container. In questo caso, --no-deps limita la modifica al servizio selezionato. Usalo solo se i servizi dipendenti sono già operativi e compatibili.

Per le build personalizzate, aggiorna la base PHP o i pacchetti pertinenti, ricompila tramite la normale pipeline di build e distribuisci l'immagine risultante. Ripeti l'operazione per i processi worker che usano quell'ambiente di esecuzione. Non applicare patch alla shell di un container effimero pensando che la correzione persisterà quando verrà ricreato.

4. Convalida l'applicazione prima di riaprire l'accesso

Controlla localmente i log per individuare errori di avvio senza condividere token o percorsi privati. Conferma l'ambiente di esecuzione web, poi prova l'accesso, la navigazione dei file, un piccolo caricamento e un'attività in background. Verifica che i percorsi dei volumi e i permessi siano ancora conformi alla configurazione prevista.

Se l'accesso pubblico è stato limitato, ripristinalo solo dopo aver superato i controlli della versione e delle funzionalità. Il solo stato verde del container non dimostra che i caricamenti o le attività in background funzionino.

5. Esegui il ripristino con attenzione se la convalida non riesce

Mantieni il servizio isolato durante le verifiche. Ripristina insieme i file dell'applicazione e lo stato del database quando le regole di migrazione dell'app lo richiedono; modificare solo l'immagine può essere rischioso dopo un aggiornamento dello schema. Non usare docker compose down -v come scorciatoia per la risoluzione dei problemi, perché può rimuovere i volumi con nome.

Per gli utenti di ZimaCube 2, separa il registro degli aggiornamenti dai file in blocco e conserva backup indipendenti. Un aggiornamento riuscito si conclude con un ambiente di esecuzione noto, le funzioni dell'applicazione operative e una procedura di ripristino che sai ancora spiegare.

Scopri ZimaCube 2 Personal Cloud Home NAS per il tuo spazio di archiviazione privato e la configurazione delle applicazioni self-hosted. La sicurezza del software dipende dai servizi installati, dalla loro configurazione e dagli aggiornamenti verificati.

Continua la serie sulla sicurezza PHP

Fonti e ambito

Verificato il 22 ottobre 2026. I consigli per la distribuzione devono essere adeguati alla documentazione della tua applicazione e del fornitore; questi articoli non attestano l'esposizione di prodotti specifici.

Supporto e consigli

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.