Запуск Redis из Docker
Настраиваю celery для Django. Поставил Docker, поставил Redis, как сделать так, чтобы при старте системы поднимался Redis из Docker, чтобы в виртуальном окружении его не поднимать? Или же Docker надо ставить в самом окружении проекта? ОС Centos 10.
Чтобы Redis автоматически запускался при старте системы, вы можете использовать системные службы, такие как systemd, которые есть в Centos.
Настройка Docker-контейнера:
Для автоматического запуска контейнера Redis, добавьте флаг --restart=always при его создании. Это гарантирует, что контейнер будет перезапущен при перезагрузке системы или в случае сбоя.
docker run --name some-redis -d --restart=always redis
--name some-redis: Дает имя контейнеру для удобства.
-d: Запускает контейнер в фоновом режиме (detached mode).
--restart=always: Самая важная часть. Указывает Docker всегда перезапускать контейнер.
Проверка:
После выполнения этой команды, Docker сам позаботится о запуске Redis при каждой загрузке ОС. Вы можете проверить, что контейнер запущен, с помощью команды:
docker ps
Лучше сделать через Docker Compose, да бы если вы внесли изменения в контейнер поднятый руками не потерялись и вы всегда знали, что у вас запущено и как, с жесткой привязкой к версии - с указанием тега образа.
sudo -i
mkdir /opt/redis
cd /opt/redis
nano docker-compose.yml
И вставляем следующее содержимое - замените версию образа в случае необходимости
services:
redis:
image: redis:8.0
ports:
- "6379:6379"
restart: always
Запускаем сборку контейнера из образа
docker compose up --wait
Команда будет отображать информацию о сборке контейнера и как только он перейдет в состояние Healthy завершит работу.
Проверить, что контейнер запущен можно командой
docker ps