УВІЙТИ
    opened image

    У цій статті ми розглянемо, як розгорнути Redis в Docker і в файлі Docker Compose.

    Redis - це високопродуктивна система управління базами даних, яка використовується для зберігання та обробки даних в пам'яті. Redis дозволяє ефективно обробляти великі обсяги даних і забезпечує високу доступність та стійкість до відмов.
     

    Встановлення Docker і Docker Compose

    Перш ніж почати, вам потрібно встановити Docker і Docker Compose. Ви можете знайти інструкції щодо встановлення Docker для вашої операційної системи на нашому блозі для Centos 7 або для Ubuntu 20.04.
     


    Встановимо 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


    Встановлюємо права на запуск. 

     

     

     

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

     


    Перевіряємо, як встановився Docker-Compose:

     

     

     

     

    docker-compose --version

     

     

    Створення Docker Compose файлу

    Для розгортання Redis з використанням Docker Compose, нам потрібно створити файл docker-compose.yaml в кореневій директорії нашого проекту. Він буде містити налаштування для Redis-контейнера.

    Щоб мати орієнтир у майбутньому щодо того, що у нас встановлено, створимо окрему папку для цього проекту в каталозі /home і перейдемо в неї.

     

     

     

     

     

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

     



    Ви також можете використовувати іншу директорію  для розміщення цього та інших проектів. 

    Скористаємося репозиторієм для створення файлу docker-compose.yaml за посиланням https://hub.docker.com/_/redis

    Створимо файл *.yaml для 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
    

     



    Давайте розглянемо кожен параметр:

    version - це версія формату файлу Docker Compose. Ми використовуємо версію 3.3.
    services - це розділ, де ми визначаємо список контейнерів і їх налаштування. У нашому випадку ми визначаємо один сервіс - Redis.
    redis - це ім'я нашого сервісу.
    image - це ім'я образу Redis, який ми будемо використовувати для створення нашого контейнера.
    restart - це налаштування, яке вказує Docker перезапускати контейнер Redis у разі його зупинки або збою.
    ports - це налаштування, яке визначає, які порти контейнера повинні бути доступні на хост-системі. У даному випадку ми прокидуємо порт 6379 контейнера Redis на порт 6379 хост-системи.
    volumes - це налаштування, яке визначає, які директорії на хост-системі повинні бути доступні всередині контейнера. У даному випадку ми монтуємо директорії з даними та конфігураційними файлами Redis.
    environment - це налаштування, яке дозволяє визначити змінні середовища для контейнера Redis. У даному випадку ми визначаємо пароль, порт і кількість баз даних Redis.
    REDIS_PASSWORD: my-password визначає змінну REDIS_PASSWORD зі значенням my-password.
    REDIS_PORT: 6379 визначає порт Redis, який буде використовуватися в контейнері. За замовчуванням Redis використовує порт 6379, тому ця змінна може використовуватися для зміни порту на інший, якщо це необхідно.
    REDIS_DATABASES: 16 визначає кількість баз даних Redis, які будуть доступні в контейнері. За замовчуванням Redis підтримує 16 баз даних, але цей параметр можна змінити за допомогою цієї змінної.

     

     

     

    Запуск Redis

    Тепер, коли у нас є файл docker-compose.yaml, ми можемо запустити контейнер Redis за допомогою команди:

     

     

     

    docker-compose up -d

     



    Ця команда запускає контейнер Redis у фоновому режимі (опція -d). Docker Compose автоматично завантажуватиме та створюватиме контейнер Redis на основі налаштувань, вказаних у файлі docker-compose.yaml.

    Ви можете перевірити, чи запущений контейнер Redis, виконавши команду:

     

     

     

    docker ps | grep redis



    Ми можемо запустити контейнер Redis без використання файлу docker-compose.yaml за допомогою наступної команди 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
    

     

     

     

    Підключення до Redis

     

     

     

     
    Ви можете підключитися до Redis контейнера за допомогою будь-якого клієнта Redis. Для цього вам знадобиться IP-адреса вашої хост-системи та порт, який ви визначили в файлі docker-compose.yaml.


    Наприклад, якщо ви використовуєте стандартний клієнт Redis, ви можете підключитися до контейнера Redis, виконавши команду:

     

     

     

    redis-cli -h 172.27.0.2 -p 6379
    

     



    Де 172.27.0.2 це IP докер контейнера, на якому працює Redis. Щоб його дізнатися, командою docker ps | grep redis дізнаємося ID нашого контейнера або скористаємося його назвою.

     

     

     

     

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

     



    Де redis_redis_1 - назва контейнера, IP-адресу якого потрібно відфільтрувати.

    Ця команда використовує прапорець --format для форматування виводу, в якому використовується функція range для перебору всіх мереж контейнера, і виводиться лише IP-адреса кожної мережі. Якщо контейнер має кілька мереж, то будуть виведені всі їх IP-адреси. Якщо ж контейнер підключений лише до однієї мережі, то буде виведений лише її IP-адреса.

    Ця команда  redis-cli -h 172.27.0.2 -p 6379 - підключиться до Redis, запущеного на локальній машині і прослуховуючого порт 6379.

    Для підключення з CMS систем, використовуйте вбудовані плагіни. 

    І так, у цій статті ми розглянули, як розгорнути Redis в Docker і Docker Compose. Ми створили файл docker-compose.yaml, з налаштуваннями для контейнера Redis.