ВОЙТИ
    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.