Данные контейнера Docker теряются при перезапуске хоста

У меня есть контейнер докеров с сервером Redis, работающий на сервере ubuntu, который отслеживает счетчик, который увеличивается приложением node js, также работающим в контейнере.

Он хорошо работает, когда я запускаю свой хост ubuntu, все контейнеры redis + nodeapp запускаются автоматически.

Посещая URL-адрес, я могу увеличить счетчик с помощью приложения узла. Я вижу, что счетчик на сервере redis увеличился, бросил клиент redis и веб-страницу.

У меня проблема:

  1. Если я перезапускаю хост-компьютер, то при перезапуске контейнера (я использую restart:always для создания своих контейнеров, чтобы перезапустить их при перезагрузке хоста) счетчик на сервере Redis упадет до 0 ( счетчик не сохранился).

  2. Я заметил, что если я увеличиваю счетчик до определенного значения, скажем, 20, и если я остановлю повторный запуск контейнера с хоста и запустил этот контейнер снова, счетчик будет сохранено на 20. И после перезагрузки хоста счетчик запускается не с 0, а с предыдущего значения 20, поэтому счетчик был сохранен.

Итак, мой вопрос: как сохранить данные (счетчик в контейнере Redis) при перезапуске хост-машины? Почему в моем случае единственный способ сохранить данные - это остановить контейнер с помощью команды docker stop?


person Aaleks    schedule 15.11.2015    source источник
comment
Похоже, Redis не сбрасывается на диск. Это поведение можно настроить, см. Следующую документацию по контейнеру: github.com/jamesbrink/docker-redis   -  person Mark O'Connor    schedule 15.11.2015


Ответы (1)


Вы видели http://redis.io/topics/persistence?

По умолчанию Redis сохраняет снимки набора данных на диск в двоичный файл с именем dump.rdb. Вы можете настроить Redis так, чтобы он сохранял набор данных каждые N секунд, если в наборе данных есть не менее M изменений, или вы можете вручную вызвать команды SAVE или BGSAVE. Например, эта конфигурация заставит Redis автоматически выгружать набор данных на диск каждые 60 секунд, если изменилось не менее 1000 ключей:

save 60 1000
person thepirat000    schedule 15.11.2015