Устранить сбой контейнера Redis для запуска использования redis.conf

Redis

Эта статья реализует функцию Решите запуск и сбой контейнера redis при запуске redis.conf Краткое понимание некоторых конфигураций redis.conf Знать параметры команды запуска docker

@TOC

Изучите файл конфигурации redis.conf

После открытия redis.conf вы увидите много бесполезной информации

在这里插入图片描述
Мы используем команду grep, чтобы просто обработать один, а затем мы можем увидеть всю информацию о конфигурации redis.conf, но введенную сейчас команду нельзя редактировать.

Заказcat redis.conf | grep -v "#" | grep -v "^$"

在这里插入图片描述
В приведенном выше показана вся информация о конфигурации redis.conf, но ее нельзя изменить. Мы можем вывести это содержимое в другой файл. В настоящее время мы можем видеть redis-test.conf в документе redis.

Выполнение заказа:cat redis.conf | grep -v "#" | grep -v "^$" ->redis-test.conf

在这里插入图片描述
В настоящее время вы можете изменить некоторую информацию о конфигурации в redis-test.conf.
在这里插入图片描述
Здесь мы сначала разбираемся с несколькими конфигурациями, а последующие конфигурации будут выписаны по порядку в последующих файлах

  • daemonize no : по умолчанию redis не используется в качестве демона, поэтому вы используете redis-server /redis/redis.conf напрямую для запуска redis, когда вы не изменяете файл конфигурации, он будет напрямую отображать службу, вы не будете иметь его в этом терминале способ работы другим, можно только открыть новый терминал для подключения к redis
  • requirepass foobared : Redis по умолчанию подключается без пароля, но пароль все же необходимо установить в целях безопасности.
  • bind 127.0.0.1: этот элемент конфигурации обычно закомментирован напрямую.После того, как эта конфигурация включена, только локальный компьютер может подключаться к Redis

Приведенная выше информация о конфигурации — это три сведения о конфигурации, которые необходимо знать в этой статье.

Знать параметры команды запуска docker

команда запуска docker - создать новый контейнер

Ниже приведена команда, которую я использую для создания контейнера.docker run -itd --restart="always" --name redis -v /usr/local/docker/data:/data -v /usr/local/docker/redis.conf:/etc/redis.conf --net mynetwork -p 6380:6379 --ip 172.10.0.2 redis:4.0 redis-server /etc/redis.conf

  • i : открыть STDIN для взаимодействия с консолью
  • t : Назначить tty-устройство, которое может поддерживать вход в терминал, по умолчанию — false.
  • d: указывает, работает ли контейнер на переднем плане или в фоновом режиме, по умолчанию — false.
  • v: смонтировать том хранилища в контейнер и смонтировать его в каталог в контейнере.
  • --net: контейнер использует свою собственную сеть
  • -p: номер порта
  • --restart: указать политику перезапуска после остановки контейнера no: не перезапускать при выходе из контейнера при сбое: перезапускать, когда контейнер не может выйти (возвращаемое значение не равно нулю) всегда: всегда перезапускать при выходе из контейнера

Решите запуск и сбой контейнера redis при запуске redis.conf

После того, как мы узнали несколько параметров redis.conf и несколько общих параметров запуска docker, давайте решим проблему сбоя непосредственно при запуске с помощью redis.conf.

Затем начните создавать контейнер, некоторые партнеры обнаружат, что есть ошибкаWARNING: IPv4 forwarding is disabled. Networking will not work.

在这里插入图片描述
Давайте сначала решим эту проблему Выполнение заказаvim /usr/lib/sysctl.d/00-system.confДобавьте следующий кодnet.ipv4.ip_forward=1перезапустить сетевую командуsystemctl restart network

Нет никаких проблем, когда вы выполняете его.

在这里插入图片描述
Тогда при входе в контейнер вы обнаружите нашу проблему.После создания и перезапуска вы сразу выйдете.
在这里插入图片描述
Вы сейчас очень подавлены, почему сразу бросили? Вот почему выше мы предложили некоторую информацию о конфигурации для параметров команды redis.conf и запуска docker.

В настоящее время мы проверяем, существует ли файл redis.conf.daemonize noЭтот параметр указывает, следует ли выполнять процесс демона.В процессе разработки мы включим эту конфигурацию и настроим ее как да.

Затем просмотрите команду запуска докера с параметром-dЭтот параметр также выполняется как демон.

Теперь должно быть ясно, что redis.conf конфликтует с конфигурацией докера.

Откройте файл конфигурации и измените процесс демона на no.

在这里插入图片描述
Затем удалите только что созданный контейнер Redis, выполните приведенную выше команду здесь, вы увидите, что теперь контейнер успешно создан и находится в открытом состоянии.
在这里插入图片描述
Вход в контейнер в это времяdocker exec -it redis /bin/bashВнутри видно, что нам нужно вводить пароль при подключении к redis-cli, который настраивается в redis.conf.
在这里插入图片描述
Выше приведено решение проблемы с запуском контейнера Redis с помощью redis.conf.