В этой статье мы рассмотрим, как развернуть 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-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.
Также предлагаем рассмотреть другие полезные статьи: