Come e perché eseguire Redis in Docker

Pubblicato: 2023-05-02

Redis è 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! Scopri come utilizzare Redis e Docker in modo efficace e sbloccare i vantaggi della containerizzazione delle tue app Redis: tutto in questo post ️ Click to Tweet

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.

Modulo di iscrizione all'hub Docker
Hub mobile

Dopo aver creato un account, accedi a Docker Hub e scarica l'ultima versione del tuo sistema operativo di Docker Desktop.

Pagina di download per Docker Desktop con opzioni per i sistemi operativi.
Pagina di download di Docker

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
Controlla la versione di Docker installata
Versione Docker installata

Quindi digitare: docker-compose --version .

Controlla la versione di Compose installata con Docker
Compose installato con Docker

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
Eseguire l'immagine Redis da Docker Hub denominata my-redis-container
Immagine Redis da Docker Hub denominata my-redis-container

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.

Verifica che l'immagine Redis sia attiva e funzionante da Docker Desktop
Docker Desktop

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
Crea una nuova rete Docker con il bridge driver
Rete Docker con il bridge driver

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 .

Estrai l'immagine Redis dall'hub Docker
Estrai l'immagine Redis dall'hub Docker

Per verificare che l'immagine Redis sia installata correttamente, esegui uno dei seguenti comandi:

 docker images
 docker image ls
Elenca le immagini Docker disponibili nel terminale dell'utente
Immagini Docker disponibili nel terminale dell'utente


Successivamente, crei e avvii il contenitore Redis. Per fare ciò, esegui il seguente comando:
 docker run -it –name dev_kinsta_redis_container -d redis
Crea ed esegui il contenitore Docker
Contenitore Docker

Ora verifica che Redis sia in esecuzione nel contenitore. Per fare ciò, digita: docker ps .

Verifica che Redis sia attivo e in esecuzione in un contenitore
Verifica che Redis sia attivo e in esecuzione in un contenitore

Ora che hai confermato che il tuo container Docker è attivo e in esecuzione, puoi aggiungere il container alla rete. Tipo: docker network connect .

Aggiungi un contenitore Docker alla rete docker creata
Aggiungi un contenitore Docker alla rete docker creata

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 .

Verificare che l'immagine Redis sia in esecuzione all'interno del container Docker
Verificare che l'immagine Redis sia in esecuzione all'interno del container Docker

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.

Connettiti all'istanza del container Redis
Connettiti all'istanza del container Redis.

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 .

Utilizza la CLI Redis per eseguire i comandi Redis
Utilizza la CLI Redis per eseguire i comandi Redis

Questo ti connette alla porta predefinita per Redis sull'host locale. Digita: ping e la risposta dovrebbe essere pong .

Verifica se la connessione Redis è attiva e funzionante
Verifica se la connessione Redis è attiva e funzionante

Successivamente, seleziona un database all'interno del tuo server Redis digitando select . Sebbene il database predefinito sia 0 , selezionare db 1 .

Seleziona un particolare database Redis
Seleziona un particolare database Redis

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
Inserisci e recupera i dati da Redis
Inserisci e recupera i dati da Redis

Per ottenere il valore della chiave, esegui get . Questo restituisce il valore. Successivamente, controlla il tuo database Redis digitando MONITOR .

Monitorare il database Redis
Monitorare il database Redis

Infine, arresta il server Redis uscendo dalla CLI. Digita exit due volte per uscire dalla CLI e da Redis.

Uscire dall'interfaccia a riga di comando di Redis
Uscire dall'interfaccia a riga di comando di Redis

Infine, interrompi l'esecuzione del contenitore Redis digitando docker stop .

Eseguire il comando per interrompere l'esecuzione del contenitore Docker
Eseguire il comando per interrompere l'esecuzione del contenitore Docker

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.

Redis + Docker = un abbinamento perfetto! Ecco perché la containerizzazione dell'app Redis è la strada da percorrere e come sfruttarla al meglio. Fai clic per twittare

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.