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.

Также предлагаем рассмотреть другие полезные статьи: