Как и зачем запускать Redis в Docker

Опубликовано: 2023-05-02

Redis — это высокодоступная база данных в памяти. Его хранилище данных типа «ключ-значение», сохраняемое на диске, идеально подходит для нескольких применений с высокой доступностью.

С другой стороны, Docker — это инструмент для контейнеризации приложений и служб, изоляции их сред и предоставления им возможности работать отдельно. Вы можете использовать Docker в качестве менеджера пакетов для приложений и служб со всеми необходимыми зависимостями, конфигурациями, сценариями и т. д. Сценарий, называемый Dockerfile, помещается внутрь контейнера Docker и позволяет развернуть контейнер как единое целое.

В этой статье вы узнаете, как эффективно использовать эти две технологии с открытым исходным кодом. В нем также рассматривается, почему запуск кластеров Redis внутри контейнеров Docker жизненно важен, а также преимущества и преимущества этого по сравнению с запуском кластеров Redis на виртуальных машинах или серверах без операционной системы.

Различные варианты использования Redis

У Redis есть несколько преимуществ. Его самые популярные применения включают в себя:

  • Распределенный кэш базы данных "ключ-значение"
  • Брокер сообщений
  • Сервер постоянного кэширования объектов

Кроме того, Redis может поддерживать несколько типов данных и структур, что делает его пригодным для использования как в качестве основного, так и в качестве дополнительного уровня базы данных для приложений. Он также поддерживает списки, потоки, хэши, наборы и т. д.

Однако вы можете расширить преимущества Redis, поместив его в контейнер.

Redis лучше всего работает внутри контейнера! Узнайте, как эффективно использовать Redis и Docker и раскройте преимущества контейнеризации приложений Redis — все в этом посте ️ Нажмите, чтобы твитнуть

Redis лучше всего работает внутри контейнера

Redis — один из самых популярных образов Docker в реестре Docker с более чем миллиардом загрузок. Причина контейнеризации приложений Redis заключается в том, чтобы получить преимущества Docker и поддержку сообщества для наиболее распространенных вариантов использования Redis.

Образ Redis Docker имеет сообщество с открытым исходным кодом, которое создает и поддерживает четкую документацию. И в довершение всего, Docker очень надежен и обеспечивает простоту использования и гибкость.

Простота использования

Docker изолирует среды как для приложений, так и для служб, работающих внутри контейнеров. Изоляция означает, что вы можете упаковывать, создавать и отправлять образы Redis, которые работают независимо от операционной системы хоста, что упрощает разработку и запуск приложений Redis в Docker. Кроме того, Docker Desktop упрощает настройку согласованной локальной среды разработки, что особенно полезно для больших команд.

Безопасность:

Вы можете сканировать уязвимости безопасности с помощью Redis внутри контейнера. Docker использует Snyk, инструмент, который обеспечивает прозрачность образов Docker. Он сканирует контейнеры Docker и предоставляет подробную информацию и исправление в случае повреждения образов. Docker также может генерировать спецификацию программного обеспечения (SBOM) для сканирования всех зависимостей, используемых при создании образов контейнеров, хотя это все еще экспериментально.

Гибкость

Docker доступен для большинства операционных систем и приложений на базе Unix и Windows. Поскольку вы используете контейнеры для изоляции программного обеспечения от его среды, чтобы обеспечить его работу со всеми системами, приложения и службы Redis всегда работают независимо от инфраструктуры.

Надежность

Docker позволяет надежно запускать любую контейнерную рабочую нагрузку в любой среде. Redis надежен в Docker, поскольку контейнеры Docker периодически делают снимки образа контейнера, что позволяет вам вернуться к этим снимкам в случае плохой или поврежденной базы данных. Вы также можете создать том Docker, смонтировав внутри контейнера каталог, содержащий файл базы данных Redis.

Том Docker помогает защитить контейнер от любой формы случайной потери данных. Однако нужно учитывать, что тома Docker не включают моментальные снимки образов. Вы должны периодически вручную сохранять или создавать резервные копии данных в файле базы данных Redis.

Как использовать Redis с Docker

Чтобы поместить ваш магазин Redis в контейнер Docker, вы должны иметь Docker в целевой среде. Следующие инструкции показывают, как установить Docker в Windows.

Вы можете следовать руководству на веб-сайте Docker для Unix или ОС на базе Unix. После установки и настройки вы можете создать сеть внутри контейнера Docker. Затем вы можете установить Redis и создать базу данных. Наконец, вы можете выполнять операции с базой данных Redis.

Сначала установите Docker в вашей операционной системе. При желании перейдите в Docker Hub и создайте учетную запись. Вам нужна учетная запись для создания и публикации изображений.

Форма регистрации Docker Hub
Докер Хаб

После создания учетной записи войдите в Docker Hub и загрузите последнюю версию Docker Desktop для вашей операционной системы.

Страница загрузки для Docker Desktop с параметрами для операционных систем.
Страница загрузки докера

После процедуры установки перейдите в окно терминала, чтобы увидеть, готов ли Docker Engine к запуску, и введите следующую команду:

 docker --version
Проверьте установленную версию Docker
Докер-версия установлена

Затем введите: docker-compose --version .

Проверьте версию Compose, установленную с Docker
Compose установлен вместе с Docker

Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker с использованием файлов YAML, которые вы используете для настройки служб приложений.

Вы можете запустить Dockerized Redis, чтобы убедиться, что Docker Engine запущен и работает, используя приведенный ниже код. В этом примере образ Redis запускается из Docker Hub и называется my-redis-container .

 docker run --name my-redis-container -d redis
Запустите образ Redis из Docker Hub с именем my-redis-container.
Образ Redis из Docker Hub с именем my-redis-container

Поскольку у вас нет локального образа, Docker извлекает образ Redis из Docker Hub.

Теперь вы можете открыть Docker Desktop, чтобы убедиться, что он извлек образ Redis. На панели инструментов нажмите «Изображения» на панели слева.

Убедитесь, что ваш образ Redis запущен и работает с рабочего стола Docker.
Докер Рабочий стол

Теперь вы можете создать сеть. Обратите внимание, что драйвер Docker использует мост или встроенные сетевые драйверы наложения для создания сети Docker. Вы также можете установить и использовать сторонний сетевой драйвер.

Разница заключается в том, что мостовые сети изолированы на одной установке Docker Engine, а оверлейные сети охватывают несколько хостов Docker, на каждом из которых работает ядро.

Тип:

 docker network create -d bridge kinsta-demo-network
Создайте новую сеть Docker с драйвером моста
Сеть Docker с драйвером моста

Если вы не укажете какие-либо драйверы по умолчанию, Docker использует драйвер моста для создания новой сети, поскольку он автоматически создает драйвер моста при установке Docker Engine. Однако если вы запустите контейнер Docker с помощью команды запуска Docker, он не будет использовать эту сеть.

Теперь, когда у вас есть сеть, следующим шагом будет установка Redis внутри контейнера Docker. Для этого введите: docker pull redis .

Извлеките образ Redis из Docker Hub.
Извлеките образ Redis из Docker Hub.

Чтобы убедиться, что образ Redis установлен правильно, выполните одну из следующих команд:

 docker images
 docker image ls
Список доступных образов Docker в пользовательском терминале
Доступные образы Docker в пользовательском терминале


Затем вы создаете и запускаете контейнер Redis. Для этого выполните следующую команду:
 docker run -it –name dev_kinsta_redis_container -d redis
Создайте и запустите контейнер Docker
Докер-контейнер

Теперь убедитесь, что Redis работает в контейнере. Для этого введите: docker ps .

Убедитесь, что Redis запущен и работает в контейнере.
Убедитесь, что Redis запущен и работает в контейнере.

Теперь, когда вы убедились, что ваш контейнер Docker запущен и работает, вы можете добавить контейнер в сеть. Тип: docker network connect .

Добавьте контейнер Docker в созданную сеть докеров.
Добавьте контейнер Docker в созданную сеть докеров.

Когда все работает, как и ожидалось, следующим шагом будет проверка того, что ваш сервер Redis, работающий внутри Docker, готов принимать соединения. Для этого используйте docker logs .

Убедитесь, что образ Redis запущен внутри контейнера Docker.
Убедитесь, что образ Redis запущен внутри контейнера Docker.

Затем вы должны создать базу данных, потому что вам нужен способ подключения к контейнеру Redis для выполнения команд на сервере. Для этого введите: docker exec -it bash . Вы можете использовать имя контейнера и идентификатор контейнера взаимозаменяемо.

Подключиться к экземпляру контейнера Redis
Подключитесь к экземпляру контейнера Redis.

В контейнере используйте CLI для запуска команд. Обратите внимание, что Redis автоматически установил хосты Docker. Чтобы использовать Redis-CLI, введите: redis-cli .

Используйте интерфейс командной строки Redis для запуска команд Redis.
Используйте интерфейс командной строки Redis для запуска команд Redis.

Это подключит вас к порту по умолчанию для Redis на локальном хосте. Введите: ping , и ответ должен быть pong .

Проверьте, работает ли соединение с Redis.
Проверьте, работает ли соединение с Redis.

Затем выберите базу данных на вашем сервере Redis, набрав select . Хотя база данных по умолчанию — 0 , выберите db 1 .

Выберите конкретную базу данных Redis
Выберите конкретную базу данных Redis

Далее вносим данные в базу. Используйте команду Redis SET . Для этого введите SET <key> <value> .

Например:

 SET mykey "Hello"

Чтобы получить тот же ключ, введите:

 get myKey
Вставка и извлечение данных из Redis
Вставка и извлечение данных из Redis

Чтобы получить значение ключа, запустите get . Это возвращает значение. Затем отслеживайте свою базу данных Redis, набрав MONITOR .

Мониторинг базы данных Redis
Мониторинг базы данных Redis

Наконец, остановите сервер Redis, выйдя из CLI. Дважды введите exit , чтобы выйти из CLI и Redis.

Выход из интерфейса командной строки Redis
Выход из интерфейса командной строки Redis

Наконец, остановите запуск контейнера Redis, набрав docker stop .

Выполните команду, чтобы остановить запуск контейнера Docker.
Выполните команду, чтобы остановить запуск контейнера Docker.

Redis с DevKinsta

DevKinsta позволяет подключить сайт WordPress к базе данных Redis. С DevKinsta надстройка Redis без проблем работает как кеш объектов для сохранения данных при нескольких загрузках страниц. Это означает, что с помощью надстройки Redis вы можете использовать кеш для повторного использования объектов вместо того, чтобы постоянно запрашивать базу данных MySQL.

После загрузки и настройки DevKinsta установите рабочий стол Docker в качестве зависимости, которую он использует для создания файлов локальной среды внутри контейнера. С помощью этой настройки вы можете настроить надстройку Redis в Devkinsta.

Поэтому надстройку Redis для DevKinsta можно использовать в качестве вторичного источника, снижая нагрузку на первичную базу данных, увеличивая время отклика и ускоряя работу приложения.

Это приводит к тому, что приложение обрабатывает больше нагрузки и эффективно масштабируется. Прочтите этот пост, чтобы использовать плагин Redis на своем веб-сайте.

Redis + Docker = союз, заключенный на небесах! Вот почему контейнеризация приложения Redis — это правильный путь и как извлечь из этого максимальную пользу. Нажмите, чтобы твитнуть

Краткое содержание

Запуск Redis внутри контейнера Docker дает много преимуществ. Он предлагает изолированную среду для ваших приложений, поэтому вам больше не нужно заботиться о платформе, на которой вы развертываете свои приложения. Кроме того, Docker обеспечивает простоту использования, гибкость и высокую надежность.

Что касается безопасности, вы можете проверить и сканировать уязвимости безопасности из коробки с помощью Synk, инструмента, обеспечивающего видимость безопасности образов Docker. Что касается гибкости, Docker работает с большинством операционных систем и приложений на базе Unix и Windows. Эта гибкость означает, что докеризованные или контейнеризованные приложения или службы всегда работают независимо от ОС.

Docker и надстройку Redis легко использовать с DevKinsta, которая запускает докеризированный сайт WordPress локально при его запуске. Ознакомьтесь с DevKinsta и надстройкой Redis, чтобы получить всю мощь Redis в Docker уже сегодня.