opened image

Як встановити Redis в Docker і Docker Compose

У цій статті ми розглянемо, як розгорнути 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.

Також пропонуємо розглянути інші корисні статті: