ZALOGUJ
    opened image

    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.