Эта статья реализует функцию Решите запуск и сбой контейнера redis при запуске redis.conf Краткое понимание некоторых конфигураций redis.conf Знать параметры команды запуска docker
@TOC
Изучите файл конфигурации redis.conf
После открытия redis.conf вы увидите много бесполезной информации
Мы используем команду grep, чтобы просто обработать один, а затем мы можем увидеть всю информацию о конфигурации redis.conf, но введенную сейчас команду нельзя редактировать.Заказcat redis.conf | grep -v "#" | grep -v "^$"
Выполнение заказа:cat redis.conf | grep -v "#" | grep -v "^$" ->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.