opened image

Jak zainstalować Redis w Dockerze i Docker Compose

W tym artykule omówimy, jak wdrożyć Redis w Dockerze i w pliku Docker Compose.

Redis to wydajny system zarządzania bazami danych, który służy do przechowywania i przetwarzania danych w pamięci. Redis umożliwia efektywne przetwarzanie dużych ilości danych oraz zapewnia wysoką dostępność i odporność na awarie.
 

Instalacja Dockera i Docker Compose

Przed rozpoczęciem musisz zainstalować Dockera i Docker Compose. Instrukcje dotyczące instalacji Dockera dla Twojego systemu operacyjnego znajdziesz w naszym blogu dla Centos 7 lub dla Ubuntu 20.04.
 


Instalacja Docker-Compose

 

curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose


Nadaj uprawnienia do uruchamiania. 

 

 

 

chmod +x /usr/local/bin/docker-compose

 


Sprawdź, czy Docker-Compose został zainstalowany:

 

 

 

 

docker-compose --version

 

 

Tworzenie pliku Docker Compose

Aby wdrożyć Redis za pomocą Docker Compose, musimy utworzyć plik docker-compose.yaml w głównym katalogu naszego projektu. Będzie on zawierał ustawienia dla kontenera Redis.

Aby w przyszłości wiedzieć, co mamy zainstalowane, utwórzmy osobny folder dla tego projektu w katalogu /home i przejdź do niego.

 

 

 

mkdir /home/redis && cd /home/redis

 



Możesz również użyć innego katalogu  do umieszczenia tego i innych projektów. 

Skorzystaj z repozytorium, aby utworzyć plik docker-compose.yaml pod adresem https://hub.docker.com/_/redis

Utwórz plik *.yaml dla Docker-Compose.

 

 

 

 

version: '3.3'

services:
  redis:
    image: redis:latest
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - /path/to/local/dаta:/root/redis
      - /path/to/local/redis.conf:/usr/local/etc/redis/redis.conf
    environment:
      - REDIS_PASSWORD=my-password
      - REDIS_PORT=6379
      - REDIS_DATABASES=16

 




Przeanalizujmy każdy parametr:

version - to wersja formatu pliku Docker Compose. Używamy wersji 3.3.
services - to sekcja, w której definiujemy listę kontenerów i ich ustawienia. W naszym przypadku definiujemy jeden serwis - Redis.
redis - to nazwa naszego serwisu.
image - to nazwa obrazu Redis, który będziemy używać do utworzenia naszego kontenera.
restart - to ustawienie, które mówi Dockerowi, aby ponownie uruchomił kontener Redis w przypadku jego zatrzymania lub awarii.
ports - to ustawienie, które określa, jakie porty kontenera powinny być dostępne na systemie hosta. W tym przypadku przekierowujemy port 6379 kontenera Redis na port 6379 systemu hosta.
volumes - to ustawienie, które określa, jakie katalogi na systemie hosta powinny być dostępne wewnątrz kontenera. W tym przypadku montujemy katalogi z danymi i plikami konfiguracyjnymi Redis.
environment - to ustawienie, które pozwala zdefiniować zmienne środowiskowe dla kontenera Redis. W tym przypadku definiujemy hasło, port i liczbę baz danych Redis.
REDIS_PASSWORD: my-password definiuje zmienną REDIS_PASSWORD o wartości my-password.
REDIS_PORT: 6379 definiuje port Redis, który będzie używany w kontenerze. Domyślnie Redis używa portu 6379, więc ta zmienna może być używana do zmiany portu na inny, jeśli jest to konieczne.
REDIS_DATABASES: 16 definiuje liczbę baz danych Redis, które będą dostępne w kontenerze. Domyślnie Redis obsługuje 16 baz danych, ale ten parametr można zmienić za pomocą tej zmiennej.

 

 

 

Uruchamianie Redis

Teraz, gdy mamy plik docker-compose.yaml, możemy uruchomić kontener Redis za pomocą polecenia:

 

 

 

 

 

docker-compose up -d

 



To polecenie uruchamia kontener Redis w trybie tła (opcja -d). Docker Compose automatycznie pobierze i utworzy kontener Redis na podstawie ustawień określonych w pliku docker-compose.yaml.

Możesz sprawdzić, czy kontener Redis jest uruchomiony, wykonując polecenie:

 

 

 

docker ps | grep redis



Możemy uruchomić kontener Redis bez użycia pliku docker-compose.yaml za pomocą następującego polecenia Docker:

 

 

 

 

 

docker run -d --name my-redis-container -p 6379:6379 -v /path/to/local/dаta:/root/redis -v /path/to/local/redis.conf:/usr/local/etc/redis/redis.conf -e REDIS_PASSWORD=my-password -e REDIS_PORT=6379 -e REDIS_DATABASES=16 redis:latest

 

 

 

Podłączanie do Redis

 

 

 

 
Możesz połączyć się z kontenerem Redis za pomocą dowolnego klienta Redis. Będziesz potrzebować adresu IP swojego systemu hosta i portu, które zdefiniowałeś w pliku docker-compose.yaml.


Na przykład, jeśli używasz standardowego klienta Redis, możesz połączyć się z kontenerem Redis, wykonując polecenie:

 

 

 

redis-cli -h 172.27.0.2 -p 6379

 



Gdzie 172.27.0.2 to adres IP kontenera Docker, na którym działa Redis. Aby go poznać, wykonaj polecenie docker ps | grep redis, aby poznać ID naszego kontenera lub skorzystaj z jego nazwy.

 

 

 

 

docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis_redis_1

 



Gdzie redis_redis_1 to nazwa kontenera, dla którego należy odfiltrować adres IP.

To polecenie używa flagi --format do sformatowania wyjścia, w którym używana jest funkcja range do iteracji po wszystkich sieciach kontenera i wyświetlania tylko adresu IP każdej sieci. Jeśli kontener ma wiele sieci, zostaną wyświetlone wszystkie ich adresy IP. Jeśli kontener jest podłączony tylko do jednej sieci, zostanie wyświetlony tylko jej adres IP.

To polecenie  redis-cli -h 172.27.0.2 -p 6379 - połączy się z Redis uruchomionym na lokalnym komputerze i nasłuchującym na porcie 6379.

Aby połączyć się z systemami CMS, użyj wbudowanych wtyczek. 

Podsumowując, w tym artykule omówiliśmy, jak wdrożyć Redis w Dockerze i Docker Compose. Utworzyliśmy plik docker-compose.yaml z ustawieniami dla kontenera Redis.

Sugerujemy również rozważenie innych przydatnych artykułów: