Jak i dlaczego uruchamiać Redis w Dockerze
Opublikowany: 2023-05-02Redis to wysoce dostępna baza danych w pamięci. Trwały na dysku magazyn danych klucz-wartość jest idealny do wielu zastosowań o wysokiej dostępności.
Z drugiej strony Docker jest narzędziem do konteneryzacji aplikacji i usług, izolowania ich środowisk i pozwalania im działać osobno. Możesz użyć Dockera jako menedżera pakietów dla aplikacji i usług ze wszystkimi niezbędnymi zależnościami, konfiguracjami, skryptami itp. Skrypt o nazwie Dockerfile jest umieszczony w kontenerze Dockera i umożliwia wdrożenie kontenera jako pojedynczej jednostki.
Z tego artykułu dowiesz się, jak efektywnie korzystać z tych dwóch technologii open source. Dotyka również tego, dlaczego uruchamianie klastrów Redis w kontenerach Docker jest tak ważne, a także zalety i korzyści z tego płynące w porównaniu z uruchamianiem klastrów Redis na maszynach wirtualnych lub serwerach fizycznych.
Różne zastosowania Redis
Redis ma kilka zalet. Do jego najpopularniejszych zastosowań należą:
- Rozproszona pamięć podręczna bazy danych klucz-wartość
- Broker wiadomości
- Trwały serwer buforowania obiektów
Ponadto Redis może obsługiwać wiele typów danych i struktur, dzięki czemu nadaje się do stosowania zarówno jako podstawowa, jak i pomocnicza warstwa bazy danych dla aplikacji. Obsługuje również listy, strumienie, skróty, zestawy itp.
Możesz jednak zwiększyć korzyści Redis, konteneryzując je.
Redis najlepiej sprawdza się w kontenerze
Redis to jeden z najpopularniejszych obrazów Dockera w rejestrze Dockera, z ponad miliardem pobrań. Powodem konteneryzacji aplikacji Redis jest uzyskanie korzyści Dockera i wsparcia społeczności dla najczęstszych przypadków użycia Redis.
Obraz Redis Docker ma społeczność open source, która tworzy i utrzymuje przejrzystą dokumentację. Co więcej, Docker jest wysoce niezawodny i umożliwia łatwe użytkowanie i elastyczność.
Łatwość użycia
Docker izoluje środowiska zarówno dla aplikacji, jak i usług działających w kontenerach. Izolacja oznacza, że możesz pakować, budować i dostarczać obrazy Redis, które działają niezależnie od systemu operacyjnego hosta, co ułatwia tworzenie i uruchamianie aplikacji Redis w Dockerze. Ponadto Docker Desktop upraszcza konfigurowanie spójnego lokalnego środowiska programistycznego, co jest szczególnie przydatne w przypadku dużych zespołów.
Bezpieczeństwo:
Możesz skanować w poszukiwaniu luk w zabezpieczeniach za pomocą Redis wewnątrz kontenera. Docker używa Snyk, narzędzia, które zapewnia wgląd w bezpieczeństwo obrazów Dockera. Skanuje kontenery Docker i zapewnia szczegółowe informacje oraz środki zaradcze w przypadku uszkodzonych obrazów. Docker może również generować programowe zestawienie materiałów (SBOM) do skanowania wszystkich zależności używanych w budowaniu obrazów kontenerów, chociaż jest to nadal eksperymentalne.
Elastyczność
Docker jest dostępny dla większości systemów operacyjnych i aplikacji opartych na systemie Unix i Windows. Ponieważ używasz kontenerów do izolowania oprogramowania od środowiska, aby zapewnić jego działanie ze wszystkimi systemami, aplikacje i usługi Redis zawsze działają pomimo infrastruktury.
Niezawodność
Docker umożliwia niezawodne uruchamianie dowolnego obciążenia kontenerowego w dowolnym środowisku. Redis jest niezawodny w Dockerze, ponieważ kontenery Dockera okresowo wykonują migawki obrazu kontenera, umożliwiając powrót do tych migawek w przypadku złej lub uszkodzonej bazy danych. Możesz także utworzyć wolumin Docker, montując katalog zawierający plik bazy danych Redis wewnątrz kontenera.
Wolumen Docker pomaga zabezpieczyć kontener przed jakąkolwiek formą przypadkowej utraty danych. Jednak zastrzeżeniem jest to, że woluminy platformy Docker nie zawierają migawek obrazu. Należy okresowo ręcznie zapisywać lub tworzyć kopie zapasowe danych w pliku bazy danych Redis.
Jak używać Redis z Dockerem
Aby umieścić swój sklep Redis w kontenerze Docker, musisz mieć Dockera w środowisku docelowym. Poniższe instrukcje pokazują, jak zainstalować Docker w systemie Windows.
Możesz postępować zgodnie z przewodnikiem na stronie internetowej Docker dla systemu operacyjnego Unix lub opartego na systemie Unix. Po instalacji i konfiguracji możesz utworzyć sieć w swoim kontenerze Docker. Następnie możesz zainstalować Redis i utworzyć bazę danych. Na koniec możesz wykonywać operacje na swojej bazie danych Redis.
Najpierw zainstaluj Dockera w swoim systemie operacyjnym. Opcjonalnie przejdź do Docker Hub i utwórz konto. Potrzebujesz konta, aby tworzyć i publikować swoje obrazy.
Po utworzeniu konta zaloguj się do Docker Hub i pobierz najnowszą wersję Docker Desktop dla swojego systemu operacyjnego.
Po procedurze instalacji przejdź do okna terminala, aby sprawdzić, czy Docker Engine jest gotowy do uruchomienia i wprowadź następujące polecenie:
docker --version
Następnie wpisz: docker-compose --version
.
Compose to narzędzie do definiowania i uruchamiania wielokontenerowych aplikacji Docker przy użyciu plików YAML, których używasz do konfigurowania usług aplikacji.
Możesz uruchomić Dockerized Redis, aby sprawdzić, czy Docker Engine działa i działa, używając poniższego kodu. Ten przykład uruchamia obraz Redis z Docker Hub i nadaje mu nazwę my-redis-container .
docker run --name my-redis-container -d redis
Ponieważ nie masz obrazu lokalnie, Docker ściąga obraz Redis z Docker Hub.
Teraz możesz otworzyć Docker Desktop, aby potwierdzić, że pobrał obraz Redis. Na pulpicie nawigacyjnym kliknij Obrazy w panelu po lewej stronie.
Teraz możesz utworzyć sieć. Należy zauważyć, że sterownik Docker używa mostka lub wbudowanych sterowników sieciowych nakładki, aby utworzyć sieć Docker. Możesz także zainstalować i używać sterownika sieciowego innej firmy.
Różnica polega na tym, że sieci pomostowe są izolowane w pojedynczej instalacji Docker Engine, podczas gdy sieci nakładkowe obejmują wiele hostów Docker, z których każdy działa z silnikiem.
Typ:
docker network create -d bridge kinsta-demo-network
Jeśli domyślnie nie określisz żadnych sterowników, Docker użyje sterownika pomostowego do utworzenia nowej sieci, ponieważ automatycznie tworzy sterownik pomostowy podczas instalacji Docker Engine. Jeśli jednak uruchomisz kontener Docker za pomocą polecenia Docker run, nie będzie on korzystał z tej sieci.
Teraz, gdy masz sieć, następnym krokiem jest instalacja Redis w kontenerze Docker. Aby to zrobić, wpisz: docker pull redis
.
Aby sprawdzić, czy obraz Redis jest poprawnie zainstalowany, uruchom jedno z następujących poleceń:
docker images
docker image ls
Następnie utwórz i uruchom kontener Redis. Aby to zrobić, uruchom następujące polecenie:
docker run -it –name dev_kinsta_redis_container -d redis
Teraz sprawdź, czy Redis działa w kontenerze. Aby to zrobić, wpisz: docker ps
.
Po potwierdzeniu, że Twój kontener Docker jest uruchomiony, możesz dodać go do sieci. Wpisz: docker network connect
.
Gdy wszystko działa zgodnie z oczekiwaniami, następnym krokiem jest sprawdzenie, czy serwer Redis działający w Dockerze jest gotowy do przyjmowania połączeń. Aby to zrobić, użyj docker logs
.
Następnie musisz utworzyć bazę danych, ponieważ potrzebujesz sposobu na połączenie się z kontenerem Redis w celu uruchamiania poleceń na serwerze. Aby to zrobić, wpisz: docker exec -it bash
. Nazwy kontenera i identyfikatora kontenera można używać zamiennie.
W kontenerze użyj interfejsu CLI do uruchamiania poleceń. Zauważ, że Redis automatycznie instalował hosty Docker. Aby użyć Redis-CLI, wpisz: redis-cli
.
Spowoduje to połączenie z domyślnym portem Redis na hoście lokalnym. Wpisz: ping
, a odpowiedzią powinno być pong
.
Następnie wybierz bazę danych na swoim serwerze Redis, wpisując select
. Chociaż domyślną bazą danych jest 0
, wybierz db 1
.
Następnie wstaw dane do bazy danych. Użyj polecenia Redis SET
. Aby to zrobić, wpisz SET <key> <value>
.
Na przykład:
SET mykey "Hello"
Aby uzyskać ten sam klucz, wpisz:
get myKey
Aby uzyskać wartość klucza, uruchom get
. To zwraca wartość. Następnie monitoruj bazę danych Redis, wpisując MONITOR
.
Na koniec zatrzymaj serwer Redis, wychodząc z interfejsu CLI. Dwukrotnie wpisz exit
, aby wyjść z CLI i Redis.
Na koniec zatrzymaj uruchamianie kontenera Redis, wpisując polecenie docker stop
.
Redis z DevKinsta
DevKinsta pozwala połączyć witrynę WordPress z bazą danych Redis. Dzięki DevKinsta dodatek Redis działa bezproblemowo jako pamięć podręczna obiektów w celu utrwalania danych podczas kilku ładowań stron. Oznacza to, że za pomocą dodatku Redis można użyć pamięci podręcznej do ponownego wykorzystania obiektów zamiast ciągłego wysyłania zapytań do bazy danych MySQL.
Po pobraniu i skonfigurowaniu DevKinsta zainstaluj Docker Desktop jako zależność, której używa do tworzenia lokalnych plików środowiska wewnątrz kontenera. Dzięki tej konfiguracji możesz skonfigurować dodatek Redis w Devkinsta.
W związku z tym dodatek Redis dla DevKinsta może służyć jako dodatkowe źródło, zmniejszając obciążenie podstawowej bazy danych, zwiększając czasy odpowiedzi i przyspieszając działanie aplikacji.
Przekłada się to na wydajniejsze ładowanie i skalowanie aplikacji. Sprawdź ten post, aby użyć wtyczki Redis w swojej witrynie.
Streszczenie
Uruchamianie Redis w kontenerze Docker ma wiele zalet. Oferuje środowisko piaskownicy dla Twoich aplikacji, dzięki czemu nie musisz już martwić się o platformę, na której wdrażasz swoje aplikacje. Ponadto Docker zapewnia łatwość użytkowania, elastyczność i wysoką niezawodność.
Jeśli chodzi o bezpieczeństwo, możesz natychmiast sprawdzić i przeskanować luki w zabezpieczeniach za pomocą Synk, narzędzia zapewniającego wgląd w bezpieczeństwo obrazów Dockera. Jeśli chodzi o elastyczność, Docker działa z większością systemów operacyjnych i aplikacji opartych na systemie Unix i Windows. Ta elastyczność oznacza, że dokowane lub konteneryzowane aplikacje lub usługi zawsze działają niezależnie od systemu operacyjnego.
Jest łatwy w użyciu Docker i dodatek Redis z DevKinsta, który uruchamia lokalnie dokowaną witrynę WordPress po jej uruchomieniu. Sprawdź DevKinsta i dodatek Redis, aby już dziś wykorzystać moc Redis w Dockerze.