Docker совет №12: Установка пароля redis без правки конфига

Jan 4, 2018 11:42 · 223 words · 2 minute read docker redis

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

Лично мне известны три возможных способа установить пароль для Redis, запущенного в docker-контейнере.

Вариант первый. Сборка своего docker-образа:

Можно установить пароль в файле redis.conf и собрать свой docker-образ с этим конфигурационным файлом внутри. Это самый простой вариант и он работает, но теперь docker-образ нужно поддерживать. Кроме того, поскольку пароль хранится в виде обычного текста, придется делать этот docker-образ приватным, и, следовательно, использовать платный репозиторий в Docker Hub (или разворачивать свой собственный docker registry).

Вариант второй. Монтирование конфигурационного файла внутрь контейнера:

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

Третий вариант. Переопределение CMD при запуске контейнера:

С большой долей вероятности могу утверждать, что вы используете docker-compose, а в его помощью очень легко установить пароль без каких-либо конфигурационных файлов. Вот так выглядит «стандартное» описание сервиса redis в конфигурационном файле docker-compose.yml:

redis:
  image: 'redis:4-alpine'
  ports:
    - '6379:6379'

Для установки пароля описание сервиса следует привести к следующему виду:

redis:
  image: 'redis:4-alpine'
  command: redis-server --requirepass your_secret_password
  ports:
    - '6379:6379'

Если вы не используете docker-compose, можете просто переопределить CMD, передав пользовательскую команду в конец docker run.

tweet Share