Cum și de ce să rulați Redis în Docker
Publicat: 2023-05-02Redis este o bază de date în memorie foarte disponibilă. Magazinul său de date cheie-valoare persistent pe disc este ideal pentru mai multe utilizări cu disponibilitate ridicată.
Pe de altă parte, Docker este un instrument pentru containerizarea aplicațiilor și serviciilor, izolându-le mediile și permițându-le să ruleze separat. Puteți utiliza Docker ca manager de pachete pentru aplicații și servicii cu toate dependențele, configurațiile, scripturile necesare etc. Un script numit Dockerfile este plasat în containerul Docker și vă permite să implementați containerul ca o singură entitate.
Acest articol vă învață cum să utilizați eficient aceste două tehnologii open-source. De asemenea, abordează de ce este vitală rularea clusterelor Redis în containerele Docker și avantajele și beneficiile de a face acest lucru în comparație cu rularea clusterelor Redis pe mașini virtuale sau servere bare metal.
Diversele utilizări ale Redis
Redis are mai multe avantaje. Cele mai populare utilizări ale sale includ:
- Cache-ul bazei de date cheie-valoare distribuită
- Broker de mesaje
- Server de stocare în cache a obiectelor persistente
În plus, Redis poate suporta mai multe tipuri și structuri de date, făcându-l potrivit pentru utilizare atât ca strat de bază de date primar, cât și secundar pentru aplicații. De asemenea, acceptă liste, fluxuri, hashuri, seturi etc.
Cu toate acestea, puteți împinge beneficiile Redis și mai mult prin containerizarea acestuia.
Redis este cel mai bun în interiorul unui container
Redis este una dintre cele mai populare imagini Docker din registrul Docker, cu peste un miliard de descărcări. Motivul pentru containerizarea aplicațiilor Redis este de a obține beneficiile Docker și suportul comunității pentru cele mai comune cazuri de utilizare Redis.
Imaginea Redis Docker are o comunitate open-source care creează și menține o documentație clară. Și, în plus, Docker este foarte fiabil și permite o utilizare ușoară și flexibilitate.
Ușurință în utilizare
Docker izolează mediile atât pentru aplicații, cât și pentru serviciile care rulează în interiorul containerelor. Izolarea înseamnă că puteți împacheta, construi și livra imagini Redis care funcționează indiferent de sistemul de operare gazdă, ceea ce facilitează dezvoltarea și rularea aplicațiilor Redis în Docker. În plus, Docker Desktop simplifică configurarea unui mediu de dezvoltare local consistent, care este util în special pentru echipele mari.
Securitate:
Puteți scana pentru vulnerabilități de securitate cu Redis în interiorul unui container. Docker folosește Snyk, un instrument care oferă vizibilitate asupra siguranței imaginilor Docker. Scanează containerele Docker și oferă detalii și remedieri în cazul imaginilor corupte. Docker poate genera, de asemenea, o listă de materiale software (SBOM) pentru scanarea tuturor dependențelor utilizate în construirea imaginilor containerului, deși este încă experimental.
Flexibilitate
Docker este disponibil pentru majoritatea sistemelor de operare și aplicațiilor bazate pe Unix și Windows. Deoarece utilizați containere pentru a izola software-ul de mediul său pentru a vă asigura că funcționează cu toate sistemele, aplicațiile și serviciile Redis rulează întotdeauna în ciuda infrastructurii.
Fiabilitate
Docker vă permite să rulați orice sarcină de lucru containerizată în orice mediu în mod fiabil. Redis este de încredere în Docker, deoarece containerele Docker fac periodic instantanee ale imaginii containerului, permițându-vă să reveniți la aceste instantanee în cazul unei baze de date proaste sau corupte. De asemenea, puteți crea un volum Docker prin montarea unui director care conține fișierul bazei de date Redis în interiorul containerului.
Un volum Docker ajută la protejarea containerului de orice formă de pierdere accidentală de date. Cu toate acestea, o avertizare este că volumele Docker nu includ instantanee de imagine. Trebuie să salvați manual sau să faceți o copie de rezervă a datelor din fișierul bazei de date Redis periodic.
Cum să utilizați Redis cu Docker
Pentru a vă pune magazinul Redis într-un container Docker, trebuie să aveți Docker în mediul țintă. Următoarele instrucțiuni vă arată cum să instalați Docker pe Windows.
Puteți urma un ghid de pe site-ul web Docker pentru un sistem de operare Unix sau Unix. După instalare și configurare, puteți crea o rețea în interiorul containerului Docker. Apoi puteți instala Redis și puteți crea o bază de date. În cele din urmă, puteți efectua operațiuni pe baza de date Redis.
Mai întâi, instalați Docker pe sistemul dvs. de operare. Opțional, navigați la Docker Hub și creați un cont. Aveți nevoie de un cont pentru a vă crea și publica imaginile.
După ce creați un cont, conectați-vă la Docker Hub și descărcați cea mai recentă versiune a sistemului de operare de Docker Desktop.
După procedura de instalare, accesați fereastra terminalului pentru a vedea dacă Docker Engine este gata să ruleze și introduceți următoarea comandă:
docker --version
Apoi tastați: docker-compose --version
.
Compose este un instrument pentru definirea și rularea aplicațiilor Docker cu mai multe containere folosind fișiere YAML, pe care le utilizați pentru a configura serviciile de aplicații.
Puteți rula un Dockerized Redis pentru a valida dacă Motorul Docker este pornit și rulează folosind codul de mai jos. Acest exemplu rulează imaginea Redis din Docker Hub și o numește my-redis-container .
docker run --name my-redis-container -d redis
Deoarece nu aveți imaginea la nivel local, Docker extrage imaginea Redis din Docker Hub.
Acum, puteți deschide Docker Desktop pentru a confirma că a extras imaginea Redis. În tabloul de bord, faceți clic pe Imagini în panoul din stânga.
Acum, puteți crea o rețea. Rețineți că driverul Docker utilizează bridge-ul sau driverele de rețea încorporate de suprapunere pentru a crea o rețea Docker. De asemenea, puteți instala și utiliza un driver de rețea terță parte.
Diferența este că rețelele bridge sunt izolate într-o singură instalare Docker Engine, în timp ce rețelele suprapuse se întind pe mai multe gazde Docker, fiecare rulând un motor.
Tip:
docker network create -d bridge kinsta-demo-network
Dacă nu specificați niciun driver în mod implicit, Docker folosește driverul bridge pentru a crea o nouă rețea, deoarece creează automat driverul bridge atunci când instalați Motorul Docker. Cu toate acestea, dacă rulați un container Docker cu comanda Docker run, acesta nu va folosi această rețea.
Acum că aveți o rețea, instalarea Redis în interiorul containerului Docker este următoarea. Pentru a face acest lucru, tastați: docker pull redis
.
Pentru a verifica că imaginea Redis este instalată corect, rulați una dintre următoarele comenzi:
docker images
docker image ls
Apoi, creați și porniți containerul Redis. Pentru a face acest lucru, rulați următoarea comandă:
docker run -it –name dev_kinsta_redis_container -d redis
Acum verificați dacă Redis rulează în container. Pentru a face acest lucru, tastați: docker ps
.
Acum că ați confirmat că containerul dvs. Docker este în funcțiune, puteți adăuga containerul în rețea. Tip: docker network connect
.
Cu totul funcționând conform așteptărilor, următorul pas este să verificați că serverul dvs. Redis care rulează în Docker este gata să accepte conexiuni. Pentru a face acest lucru, utilizați docker logs
.
Apoi, trebuie să creați o bază de date, deoarece aveți nevoie de o modalitate de a vă conecta la containerul Redis pentru a rula comenzi pe server. Pentru a face acest lucru, tastați: docker exec -it bash
. Puteți utiliza numele containerului și ID-ul containerului în mod interschimbabil.
În container, utilizați CLI pentru a rula comenzi. Rețineți că Redis a instalat automat gazdele Docker. Pentru a utiliza Redis-CLI, tastați: redis-cli
.
Aceasta vă conectează la portul implicit pentru Redis pe gazda locală. Tastați: ping
și răspunsul ar trebui să fie pong
.
Apoi, selectați o bază de date în interiorul serverului dvs. Redis tastând select
. Deși baza de date implicită este 0
, selectați db 1
.
Apoi, introduceți datele în baza de date. Utilizați comanda Redis SET
. Pentru a face acest lucru, tastați SET <key> <value>
.
De exemplu:
SET mykey "Hello"
Pentru a obține aceeași cheie, tastați:
get myKey
Pentru a obține valoarea cheii, rulați get
. Aceasta returnează valoarea. Apoi, monitorizați baza de date Redis tastând MONITOR
.
În cele din urmă, opriți serverul Redis ieșind din CLI. Tastați exit
de două ori pentru a ieși din CLI și Redis.
În cele din urmă, opriți rularea containerului Redis tastând docker stop
.
Redis cu DevKinsta
DevKinsta vă permite să conectați un site WordPress la o bază de date Redis. Cu DevKinsta, suplimentul Redis funcționează perfect ca cache de obiecte pentru a persista datele pe mai multe încărcări de pagini. Aceasta înseamnă că, utilizând suplimentul Redis, puteți folosi memoria cache pentru a reutiliza obiecte în loc să interogați în mod constant baza de date MySQL.
După descărcarea și configurarea DevKinsta, instalați Docker Desktop ca o dependență, pe care o folosește pentru a crea fișiere de mediu local în interiorul unui container. Cu această configurare, puteți configura suplimentul Redis în Devkinsta.
Prin urmare, suplimentul Redis pentru DevKinsta poate fi folosit ca sursă secundară, reducând încărcarea bazei de date primare, mărind timpul de răspuns și făcând aplicația să funcționeze mai rapid.
Acest lucru se traduce prin faptul că aplicația gestionează mai multă încărcare și scalează eficient. Consultați această postare pentru a utiliza pluginul Redis cu site-ul dvs. web.
rezumat
Există multe avantaje în a rula Redis într-un container Docker. Oferă un mediu sandbox pentru aplicațiile dvs., astfel încât să nu vă mai pese de platforma în care implementați aplicațiile. În plus, Docker oferă ușurință în utilizare, flexibilitate și fiabilitate ridicată.
În ceea ce privește securitatea, puteți verifica și scana vulnerabilitățile de securitate din cutie cu Synk, un instrument care oferă vizibilitate asupra siguranței imaginilor Docker. Și în ceea ce privește flexibilitatea, Docker funcționează pentru majoritatea sistemelor și aplicațiilor de operare bazate pe Unix și Windows. Această flexibilitate înseamnă că aplicațiile sau serviciile dockerizate sau containerizate rulează întotdeauna, indiferent de sistemul de operare.
Este ușor să utilizați Docker și suplimentul Redis cu DevKinsta, care creează un site WordPress dockerizat la nivel local când îl porniți. Consultați DevKinsta și suplimentul Redis pentru a obține puterea Redis în Docker astăzi.