2016-04-23 3 views
3

Я использую Rancher как инструмент оркестровки. У меня есть единственный узел Cassandra, установленный в контейнере, и он хотел бы его перезапустить, так как я недавно внес некоторые изменения в файл конфигурации (cassandra.yaml). В базе данных уже есть данные, поэтому хотелось бы предотвратить потерю данных. Я использую изображение usman/docker-rancher-cassandra:3.1. Какую команду следует использовать для этого?Перезагрузка контейнера докера без потери данных

ответ

5

Перезапуск контейнера не повлияет на ваши данные в контейнере. Если вы пытаетесь воссоздать контейнер с новым изображением, вы можете потерять данные.

Если вы используете тома, ваши данные будут сохраняться на хосте. Это зависит от того, как вы начали свой контейнер. Вы можете проверить информацию об объеме от docker inspect <container_name>.

Переходя через dockerfile который вы используете, каталог данных cassandra является томом.

VOLUME /var/lib/cassandra 

Если вы явно смонтировали объем контейнера с помощью

docker run -d -v <HOST_PATH>:/var/lib/cassandra usman/docker-rancher-cassandra:3.1 

Затем вы можете обновить контейнер с новой версией. В противном случае вам нужно скопировать данные из каталога перед повторным созданием контейнера.

SOUTION 1:

Start другой контейнер из объемов существующего контейнера.

docker stop cassandra 
docker run -it --volumes-from cassandra \ 
       --name="cassandra-new" \ 
       usman/docker-rancher-cassandra:3.1 

Если все работает нормально, удалите предыдущий контейнер и переименовать контейнер

docker rm cassandra 
docker rename cassandra-new cassandra 

РЕШЕНИЕ 2:

Вы можете скопировать данные из /var/lib/docker/volumes/531419fb27d1dff9c5371769edc08d6160f71061c9fe3af05309a3a0c51bb84d/_data некоторых другой каталог перед повторным созданием контейнера. Вам нужно установить этот каталог при запуске нового контейнера с помощью

docker run -v <HOST_PATH>:/var/lib/cassandra

+0

Есть ли способ, чтобы экспортировать данные из контейнера и после импорта перезапустить его? Я не установил его явно. – plaidshirt

+1

@KovacsAkos, Обновленный ответ для восстановления ваших данных из контейнера. – Gangaraju

Смежные вопросы