У цій статті ми розглянемо, як розгорнути 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.
Також пропонуємо розглянути інші корисні статті:
- How to install FileGator file manager in Docker
- How to install MySQL 8 on Docker
- How to install phpMyAdmin in Docker