Come e perché eseguire Redis in Docker
Pubblicato: 2023-05-02Redis è un database in memoria altamente disponibile. Il suo archivio dati chiave-valore persistente su disco è ideale per molteplici usi di alta disponibilità.
D'altra parte, Docker è uno strumento per la containerizzazione di applicazioni e servizi, isolando i loro ambienti e consentendo loro di essere eseguiti separatamente. Puoi utilizzare Docker come gestore di pacchetti per applicazioni e servizi con tutte le dipendenze, le configurazioni, gli script, ecc.
Questo articolo ti insegna come utilizzare queste due tecnologie open source in modo efficace. Tocca anche il motivo per cui l'esecuzione di cluster Redis all'interno dei container Docker è vitale e i vantaggi e i vantaggi di farlo rispetto all'esecuzione di cluster Redis su macchine virtuali o server bare metal.
I vari usi di Redis
Redis ha diversi vantaggi. I suoi usi più popolari includono:
- Cache di database distribuita con valore-chiave
- Broker di messaggi
- Server di memorizzazione nella cache degli oggetti persistente
Inoltre, Redis può supportare più tipi e strutture di dati, rendendolo adatto all'uso sia come livello di database primario che secondario per le applicazioni. Supporta anche elenchi, flussi, hash, set, ecc.
Tuttavia, puoi spingere ulteriormente i vantaggi di Redis containerizzandolo.
Redis è il migliore all'interno di un contenitore
Redis è una delle immagini Docker più popolari nel registro Docker, con oltre un miliardo di download. Il motivo per la containerizzazione delle applicazioni Redis è ottenere i vantaggi di Docker e il supporto della community per i casi d'uso Redis più comuni.
L'immagine Redis Docker dispone di una community open source che crea e mantiene una documentazione chiara. E per finire, Docker è altamente affidabile e consente facilità d'uso e flessibilità.
Facilità d'uso
Docker isola gli ambienti sia per le app che per i servizi in esecuzione all'interno dei container. Isolamento significa che puoi impacchettare, creare e spedire immagini Redis che funzionano indipendentemente dal sistema operativo host, il che semplifica lo sviluppo e l'esecuzione di applicazioni Redis all'interno di Docker. Inoltre, Docker Desktop semplifica la configurazione di un ambiente di sviluppo locale coerente, particolarmente utile per i team di grandi dimensioni.
Sicurezza:
Puoi cercare vulnerabilità di sicurezza con Redis all'interno di un container. Docker utilizza Snyk, uno strumento che fornisce visibilità sulla sicurezza delle immagini Docker. Esamina i contenitori Docker e fornisce dettagli e rimedi in caso di immagini danneggiate. Docker può anche generare una distinta base software (SBOM) per la scansione di tutte le dipendenze utilizzate nella creazione di immagini di container, sebbene sia ancora sperimentale.
Flessibilità
Docker è disponibile per la maggior parte dei sistemi operativi e delle applicazioni basati su Unix e Windows. Poiché utilizzi i container per isolare il software dal suo ambiente per assicurarti che funzioni con tutti i sistemi, le app e i servizi Redis vengono sempre eseguiti nonostante l'infrastruttura.
Affidabilità
Docker ti consente di eseguire in modo affidabile qualsiasi carico di lavoro containerizzato in qualsiasi ambiente. Redis è affidabile in Docker perché i contenitori Docker acquisiscono periodicamente istantanee dell'immagine del contenitore, consentendo di ripristinare queste istantanee in caso di database non valido o danneggiato. Puoi anche creare un volume Docker montando una directory contenente il file del database Redis all'interno del contenitore.
Un volume Docker aiuta a proteggere il contenitore da qualsiasi forma di perdita accidentale di dati. Tuttavia, un avvertimento è che i volumi Docker non includono istantanee di immagini. È necessario salvare manualmente o eseguire periodicamente il backup dei dati nel file del database Redis.
Come utilizzare Redis con Docker
Per inserire il tuo negozio Redis all'interno di un contenitore Docker, devi avere Docker nell'ambiente di destinazione. Le seguenti istruzioni mostrano come installare Docker su Windows.
È possibile seguire una guida sul sito Web di Docker per un sistema operativo Unix o basato su Unix. Dopo l'installazione e la configurazione, puoi creare una rete all'interno del tuo contenitore Docker. Quindi puoi installare Redis e creare un database. Infine, puoi eseguire operazioni sul tuo database Redis.
Innanzitutto, installa Docker sul tuo sistema operativo. Facoltativamente, vai all'hub Docker e crea un account. Hai bisogno di un account per creare e pubblicare le tue immagini.
Dopo aver creato un account, accedi a Docker Hub e scarica l'ultima versione del tuo sistema operativo di Docker Desktop.
Dopo la procedura di installazione, vai alla finestra del tuo terminale per vedere se Docker Engine è pronto per essere eseguito e inserisci il seguente comando:
docker --version
Quindi digitare: docker-compose --version
.
Compose è uno strumento per la definizione e l'esecuzione di applicazioni Docker multi-container utilizzando file YAML, che puoi utilizzare per configurare i servizi dell'applicazione.
Puoi eseguire un Redis dockerizzato per verificare che il motore Docker sia attivo e in esecuzione utilizzando il codice seguente. Questo esempio esegue l'immagine Redis da Docker Hub e la denomina my-redis-container .
docker run --name my-redis-container -d redis
Poiché l'immagine non è disponibile in locale, Docker estrae l'immagine Redis dall'hub Docker.
Ora puoi aprire Docker Desktop per confermare che ha estratto l'immagine Redis. Nella Dashboard, fai clic su Immagini nel pannello di sinistra.
Ora puoi creare una rete. Si noti che il driver Docker utilizza il bridge o i driver di rete incorporati in sovrapposizione per creare una rete Docker. È inoltre possibile installare e utilizzare un driver di rete di terze parti.
La differenza è che le reti bridge sono isolate su una singola installazione del motore Docker, mentre le reti overlay si estendono su più host Docker, ognuno dei quali esegue un motore.
Tipo:
docker network create -d bridge kinsta-demo-network
Se non specifichi alcun driver per impostazione predefinita, Docker utilizza il driver bridge per creare una nuova rete poiché crea automaticamente il driver bridge quando installi il motore Docker. Tuttavia, se esegui un contenitore Docker con il comando Docker run, non utilizzerà questa rete.
Ora che disponi di una rete, il passaggio successivo è l'installazione di Redis all'interno del container Docker. Per fare ciò, digita: docker pull redis
.
Per verificare che l'immagine Redis sia installata correttamente, esegui uno dei seguenti comandi:
docker images
docker image ls
Successivamente, crei e avvii il contenitore Redis. Per fare ciò, esegui il seguente comando:
docker run -it –name dev_kinsta_redis_container -d redis
Ora verifica che Redis sia in esecuzione nel contenitore. Per fare ciò, digita: docker ps
.
Ora che hai confermato che il tuo container Docker è attivo e in esecuzione, puoi aggiungere il container alla rete. Tipo: docker network connect
.
Con tutto che funziona come previsto, il passaggio successivo è verificare che il server Redis in esecuzione all'interno di Docker sia pronto ad accettare connessioni. Per fare ciò, usa docker logs
.
Successivamente, devi creare un database perché hai bisogno di un modo per connetterti al contenitore Redis per eseguire i comandi sul server. Per fare ciò, digita: docker exec -it bash
. Puoi utilizzare il nome del contenitore e l'ID del contenitore in modo intercambiabile.
Nel contenitore, utilizza l'interfaccia a riga di comando per eseguire i comandi. Si noti che Redis ha installato automaticamente gli host Docker. Per utilizzare Redis-CLI, digitare: redis-cli
.
Questo ti connette alla porta predefinita per Redis sull'host locale. Digita: ping
e la risposta dovrebbe essere pong
.
Successivamente, seleziona un database all'interno del tuo server Redis digitando select
. Sebbene il database predefinito sia 0
, selezionare db 1
.
Successivamente, inserisci i dati nel database. Utilizzare il comando Redis SET
. Per farlo, digitare SET <key> <value>
.
Per esempio:
SET mykey "Hello"
Per ottenere la stessa chiave, digitare:
get myKey
Per ottenere il valore della chiave, esegui get
. Questo restituisce il valore. Successivamente, controlla il tuo database Redis digitando MONITOR
.
Infine, arresta il server Redis uscendo dalla CLI. Digita exit
due volte per uscire dalla CLI e da Redis.
Infine, interrompi l'esecuzione del contenitore Redis digitando docker stop
.
Redis con DevKinsta
DevKinsta ti consente di connettere un sito WordPress a un database Redis. Con DevKinsta, il componente aggiuntivo Redis funziona perfettamente come una cache di oggetti per rendere persistenti i dati attraverso diversi caricamenti di pagina. Ciò significa che utilizzando il componente aggiuntivo Redis, puoi utilizzare la cache per riutilizzare gli oggetti invece di interrogare costantemente il database MySQL.
Dopo aver scaricato e configurato DevKinsta, installa Docker Desktop come dipendenza, che utilizza per creare file di ambiente locale all'interno di un contenitore. Con questa configurazione, puoi configurare il componente aggiuntivo Redis in Devkinsta.
Pertanto, il componente aggiuntivo Redis per DevKinsta può essere utilizzato come fonte secondaria, riducendo il carico sul database primario, aumentando i tempi di risposta e velocizzando il funzionamento dell'applicazione.
Ciò si traduce nell'app che gestisce più carico e si ridimensiona in modo efficiente. Dai un'occhiata a questo post per utilizzare il plug-in Redis con il tuo sito web.
Riepilogo
Ci sono molti vantaggi nell'eseguire Redis all'interno di un container Docker. Offre un ambiente sandbox per le tue applicazioni, quindi non devi più preoccuparti della piattaforma in cui distribuisci le tue applicazioni. Inoltre, Docker consente facilità d'uso, flessibilità e alta affidabilità.
Per quanto riguarda la sicurezza, puoi controllare e scansionare le vulnerabilità della sicurezza fuori dagli schemi con Synk, uno strumento che fornisce visibilità sulla sicurezza delle immagini Docker. E per quanto riguarda la flessibilità, Docker funziona per la maggior parte dei sistemi operativi e delle applicazioni basati su Unix e Windows. Questa flessibilità significa che le app o i servizi dockerizzati o containerizzati vengono sempre eseguiti indipendentemente dal sistema operativo.
È facile usare Docker e il componente aggiuntivo Redis con DevKinsta, che fa girare un sito WordPress dockerizzato localmente quando lo avvii. Dai un'occhiata a DevKinsta e al componente aggiuntivo Redis per ottenere la potenza di Redis in Docker oggi stesso.