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
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: